Как сохранить / восстановить папку
В настоящее время я учу себя (с помощью SO & Google) VB.Net создавать лаунчер для многопользовательского мода, и мне нужно, чтобы пользователи при первом запуске моего приложения указывали, где хранится их папка;
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
Кнопка для запуска самого мода
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
Я запутался в том, как я могу сохранить выбранный пользователем путь и затем вызвать его позже для кнопки, не всегда спрашивая dir.
1 ответ
Вы почти там:
У вас есть различные варианты хранения информации: реестр, старый стиль с использованием ini-файлов или в конфигурационном файле вашего приложения. Я бы предложил использовать файл конфигурации, так как вы уже храните isFirstRun-varialbe в конфигурации. В проекте explrorer посмотрите на папку "Мой проект" и дважды щелкните по пункту "Настройки". Добавьте параметр типа string с именем "ModFolder". После этого вы сможете получить доступ к значению этого параметра, используя MyialSettings.ModFolder varialbe (см. Здесь).
Используйте FolderBrowserDialog для хранения папки (см. Здесь)
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
Если файл существует, запустите его, если нет, снова откройте диалоговое окно, чтобы выбрать папку.