如何 Save/Recall Folderbrowserdialog SelectedPath

How To Save/Recall Folderbrowserdialog SelectedPath

我目前正在自学(在 SO & Google 的帮助下)VB.Net 为多人游戏创建一个启动器 mod 我需要用户在我的第一次启动时应用程序输入他们的文件夹的存储位置,到目前为止我有;

Dim folderDlg As System.Windows.Forms.FolderBrowserDialog
    folderDlg = New System.Windows.Forms.FolderBrowserDialog
    folderDlg.Description = "Please select your multiplayer folder"


    If My.Settings.isFirstRun Then
        My.Settings.isFirstRun = False
        My.Settings.Save()
        folderDlg.ShowDialog()
    Else

    End If

运行 mod 本身的按钮

    Private Sub Launch_mp_Click(sender As Object, e As EventArgs) Handles Launch_mp.Click
    If My.Computer.FileSystem.FileExists("launcher.exe") Then
        Process.Start("launcher.exe")
        Timer2.Interval = 1000
        Timer2.Start()
    End If
End Sub

Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
    p = Process.GetProcessesByName("eurotrucks2")
    If p.Count > 0 Then
        Timer2.Stop()
        Me.WindowState = FormWindowState.Minimized
        Me.Visible = True
    Else
    End If
End Sub

我很困惑如何存储用户选择的路径,然后在以后为按钮调用它而不总是询问目录。

你快到了:

您有多种存储信息的选项:注册表、使用 ini 文件的旧式或在应用程序的配置文件中。我建议使用配置文件,因为您已经将 isFirstRun-varialbe 存储在配置中。在 project explrorer 中查看 "My Project" 文件夹并双击名为 "Settings" 的项目。添加名为 "ModFolder" 的字符串类型设置。之后,您将能够使用 My.Settings.ModFolder varialbe(参见 here)访问该设置的值。

使用 FolderBrowserDialog 存储文件夹(参见 here

if folderDlg.ShowDialog() = DialogResult.Ok then 
   My.Settings.ModFoler = folderDlg.SelectedPath
   My.Settings.Save
end if

当您的应用程序下次启动时,ModFolder 变量将自动保存存储的值,而不是 If My.Settings.isFirstRun Then 我会检查:

If File.Exists(Path.Combine(My.Settings.ModFolder, "AppToStart.Exe")) then
...
end if

如果文件存在则启动它,如果不存在则重新显示选择文件夹的对话框。