2012-07-13 248 views
8

En el primer inicio de mi aplicación, necesito especificar una ruta para guardar algunos archivos en ella. Pero en el diálogo de archivo abierto parece que tengo que seleccionar un archivo para abrir. ¿Cómo puedo basta con especificar una carpeta sin oppening un archivo como C: \ config \¿Cómo se especifica la ruta usando el diálogo abrir archivo en vb.net?

Aquí está mi código

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 

necesito seleccionar un archivo con el fin de que funcione, pero sólo quiero para seleccionar una carpeta. Entonces, ¿cuál es la solución?

Respuesta

17

Desea utilizar la clase FolderBrowserDialog en lugar de la clase OpenFileDialog. Puede encontrar más información sobre él aquí:

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

Por ejemplo, usted puede hacer esto:

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 
+0

OP preguntó cómo seleccionar una ruta usando un * Open File Dialogue *. MS FolderBrowserDialog es bastante inútil (ya que no se ha actualizado desde los años 90 con la navegación del árbol de carpetas como el explorador de Windows de la escuela anterior de Windows 3.0) y no todos quieren usarlo para seleccionar rutas. – thebunnyrules

2

Si entiendo correctamente, quiere que el usuario elija una carpeta. Si ese es el caso, entonces quiere usar FolderBrowserDialog en lugar de OpenFileDialog.

+0

gracias que trabajó :) El – FPGA

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

Su segunda línea incluye un error tipográfico en '.IntialDirectory'. Falta la primera 'i' inferior. Toda la línea debe ser 'filedialog.InitialDirectory = Application.StartupPath' – PeterCo

0

O puede simplemente hacer que sea menos líneas y muy simple.

http://i.imgur.com/bMq0HNz.png

'Start your dialog with a click  

Private Sub Button1_Click (remitente como objeto, e como EventArgs) Maneja Button1.Click FolderBrowserDialog1.ShowDialog() End Sub

'Add if you want to show the actual path that you choose from your dialog 
Private Sub FolderBrowserDialog1_Disposed(sender As Object, e As EventArgs) Handles Button1.Click 
    TextBox1.Text = FolderBrowserDialog1.SelectedPath.ToString 
End Sub 
Cuestiones relacionadas