Как указать путь, используя диалог открытия файла в vb.net?

В первом запуске моего приложения мне нужно указать путь для сохранения некоторых файлов. Но в открывшемся диалоге файлов мне кажется, что я должен выбрать файл для открытия. Как я могу просто указать папку, не открывая файл например C:\config\

Вот мой код

If apppath = "" Then
        Dim fd As OpenFileDialog = New OpenFileDialog()
        fd.Title = "Select Application Configeration Files Path"
        fd.InitialDirectory = "C:\"
        fd.Filter = "All files (*.*)|*.*|All files (*.*)|*.*"
        fd.FilterIndex = 2
        fd.RestoreDirectory = True
        If fd.ShowDialog() = DialogResult.OK Then
            apppath = fd.FileName
        End If
        My.Computer.FileSystem.WriteAllText(apppath & "apppath.txt", apppath, False)
    End If

Мне нужно выбрать файл, чтобы он работал, но я просто хочу выбрать папку. Итак, какое решение?

Ответ 1

Вы хотите использовать класс FolderBrowserDialog вместо класса OpenFileDialog. Вы можете найти дополнительную информацию об этом здесь:

http://msdn.microsoft.com/en-us/library/system.windows.forms.folderbrowserdialog(v=vs.110).aspx

Например, вы можете сделать это:

If apppath = "" Then
    Dim dialog As New FolderBrowserDialog()
    dialog.RootFolder = Environment.SpecialFolder.Desktop
    dialog.SelectedPath = "C:\"
    dialog.Description = "Select Application Configeration Files Path"
    If dialog.ShowDialog() = Windows.Forms.DialogResult.OK Then
        apppath = dialog.SelectedPath
    End If
    My.Computer.FileSystem.WriteAllText(apppath & "apppath.txt", apppath, False)
End If

Ответ 2

Если я правильно понимаю, вы хотите, чтобы пользователь выбрал папку. Если это так, то вы хотите использовать FolderBrowserDialog вместо OpenFileDialog.

Ответ 3

Dim filedialog As New OpenFileDialog
filedialog.IntialDirectory = Application.StartupPath
filedialog.ShowDialog()

Ответ 4

Или вы можете просто сделать это меньше строк и очень просто.

ссылка: http://i.imgur.com/bMq0HNz.png

Начните диалог одним нажатием:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    FolderBrowserDialog1.ShowDialog()
End Sub

Добавьте, если вы хотите показать фактический путь, который вы выбираете из своего диалога

Private Sub FolderBrowserDialog1_Disposed(sender As Object, e As EventArgs) Handles Button1.Click
    TextBox1.Text = FolderBrowserDialog1.SelectedPath.ToString
End Sub