web-dev-qa-db-ja.com

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

機能させるにはファイルを選択する必要がありますが、フォルダを選択したいだけです。それで解決策は何ですか?

8
FPGA

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
17
Steven Doggart

私が正しく理解している場合は、ユーザーにフォルダーを選択させる必要があります。その場合は、OpenFileDialogではなくFolderBrowserDialogを使用します。

2
APrough
Dim filedialog As New OpenFileDialog
filedialog.IntialDirectory = Application.StartupPath
filedialog.ShowDialog()
1
ad48

または、単に行数を減らして非常に単純にすることもできます。

リンク: 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
0
Kingsman Coder