2009-10-28 17 views
6

Estoy creando un software que SOLO debe permitir que las personas seleccionen archivos y carpetas utilizando OpenFileDialog que se encuentran en el mismo directorio que el programa y que se encuentran en carpetas más profundas. No quiero que OpenFileDialog pueda seleccionar cosas fuera del directorio actual del programa. ¿Es esto posible hacerlo en C# usando OpenFileDialog?C# OpenFileDialog Lock To Directory

Por favor, hágamelo saber

Gracias

+0

reetiquetado de 'bloqueo OpenFileDialog al árbol de directorios' – pyrocumulus

+2

Yo sé los diálogos se pueden anular y personalizada .. mira esto – Letterman

Respuesta

1

se puede comprobar si la ruta es correcta después de seleccionar

si su caja simplemente aceptar o enviar un mensaje indicándole que seleccione diferentes directorio

1

Me temo que no se puede. La mayoría de las personas creó su propio diálogo personalizado para este escenario.

+0

Esto parece ser correcta. http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/ae322891-fd55-4027-ae4f-53100ae32852 – RCIX

2

No veo ningún soporte inmediato de OpenFileDialog Control. Sin embargo, puede intentar lo siguiente,

Establezca la propiedad InitialDirectory en la ruta de su programa. Luego, si un usuario selecciona una ruta particular fuera de la ruta de su programa, use el evento FileOk para verificar esto y traerlo de nuevo al DirectorioInicial.

Si quiere tener mucho más control, tendrá que escribir su diálogo personalizado.

1

Ésta es la forma en que lo hice.

openFileDialog1.InitialDirectory = Path.Combine(Path.GetDirectoryName(Application.StartupPath), "FolderName"); 

     if (openFileDialog1.ShowDialog() == DialogResult.OK) 
     {    
       while(Path.GetDirectoryName(openFileDialog1.FileName) != Path.Combine(Path.GetDirectoryName(Application.StartupPath), "FolderName")){ 

        MessageBox.Show("Please select .EXE which is in the default folder", "Wrong folder", MessageBoxButtons.OK, MessageBoxIcon.Information); 
       openFileDialog1.ShowDialog(); 

      }      
     }