2012-04-30 14 views
6

ACTUALIZACIÓN: Parece que no tenía claro cuál era mi problema. La edición de John Arlen de mi título también parece estar causando más de un malentendido. El título se cambió a "¿Cómo puedo obtener una carpeta o ruta de archivo?" que no es lo que estoy buscando. Entiendo que hay un diálogo que funciona con archivos y otro que funciona con carpetas. Sé que cada uno de estos cuadros de diálogo puede devolver una ruta de una carpeta o archivo. Dije que no sabía exactamente cómo obtener una ruta de archivo, pero no me ayudó incluso si sabía cómo hacerlo.¿Cómo puedo obtener una carpeta o ruta de archivo a través de un solo cuadro de diálogo de WinForm?

Como se indica en mi pregunta original:.

"Estoy teniendo el usuario seleccione una carpeta o archivo a través de algunas de diálogo No sé si la ruta pertenecerá a una carpeta o un archivo. Una vez que el usuario presiona el botón 'Abrir', quiero que el directorio o la ruta del archivo seleccionados actualmente se almacenen en una cadena. "

Lo que quise decir aquí es que quería usar algún cuadro de diálogo que puede existir o no. No sé si el usuario busca un archivo o una carpeta. El usuario lo sabe, pero el usuario no conoce la ruta. Es por eso que se usa un diálogo. El usuario buscará el archivo o carpeta necesaria, luego haga clic en "Abrir". Tiene más sentido para un solo diálogo para esto para mis necesidades. Quería ver si existía tal diálogo ya que mi experiencia con .NET Framework es limitada.

La respuesta de Jared Kells era casi exactamente lo que estaba buscando. Después de leer lo que él proporcionó, parece que ese diálogo no existe. Tendré que proporcionar mi propia implementación.

Dado que crear mi propia implementación probablemente me lleve mucho tiempo y resulte difícil, me voy a exceder por ahora. Esperaré un par de días para elegir una respuesta en caso de que alguien brinde una respuesta excepcionalmente útil.

Gracias a quienes contribuyeron incluso si no era lo que yo buscaba.

contenido original:

Estoy buscando una manera de obtener la ruta del archivo de una carpeta o archivo. He jugado con OpenFileDialog y FolderBrowserDialog sin mucho éxito. Pude obtener las rutas de carpeta usando FolderBrowserDialog.SelectedPath. Usando la clase OpenFileDialog, no pude averiguar cómo obtener la ruta del archivo.

Incluso si pudiera entenderlo, todavía estoy en un aprieto. Voy a hacer que el usuario seleccione una carpeta o archivo a través de un cuadro de diálogo. No sé si la ruta pertenecerá a una carpeta o un archivo. Una vez que el usuario presiona el botón "Abrir", quiero que el directorio seleccionado o la ruta del archivo se almacenen en una cadena. Parece que cada una de esas clases que utilizo están atrapadas con archivos o carpetas.

¿Esto es posible con los cuadros de diálogo de WinForms? Preferiría no tener que escribir mi propio diálogo en este momento.

+0

¿Ha mirado todo en el espacio de nombres System.IO.Path? Hay muchas cosas buenas ahí. – WildCrustacean

+1

OpenFileDialog.FileName – SimpleVar

+0

http://msdn.microsoft.com/en-us/library/system.io.filesysteminfo.attributes.aspx le dirá si es un directorio – Patrick

Respuesta

2

Consulte esta pregunta para conocer algunos métodos para mostrar un cuadro de diálogo común que puede seleccionar tanto archivos como carpetas.

Select either a file or folder from the same dialog in .NET

Con base en las respuestas a la pregunta anterior he creado un simple ejemplo de cómo hacer esto en C# aquí: https://github.com/jkells/folder-browser-dialog-example

Usted debe ser capaz de simplemente copiar FolderBrowserDialogEx.cs en su proyecto.

+0

Esto es más o menos lo que era buscando. El problema ahora es que no creo que pueda implementar fácilmente mi propia versión con mi habilidad/conocimiento actual. No he trabajado con .Net Framework por mucho tiempo, y ya he encontrado algunas limitaciones. Lo encontré interesante porque siempre lo había pensado como esta gran colección de código que llevaría una eternidad aprender. Parece tan vasto, pero aun así se queda corto en algunos lugares. – Cheese

+0

Hey Cheese, actualicé la pregunta con un ejemplo. –

7
openFileDialog1.ShowDialog(); 
string filePath = openFileDialog1.FileName; 

Le dará la ruta para un archivo.

folderBrowserDialog1.ShowDialog(); 
string folderPath = folderBrowserDialog1.SelectedPath; 

para una carpeta.

string path = ... 
if(File.Exists(path))...//is file 
if(Directory.Exists(path))...//is folder 

para comprobar qué es.

Cuestiones relacionadas