2010-05-13 16 views
19

Esta puede ser una funcionalidad práctica para tener en un programa que funcione con archivos/carpetas. Es bastante fácil para abrir la carpeta que contiene en realidad usando:Implemente la "Carpeta que contiene abierta" y resalte el archivo

System.Diagnostics.Process.Start(*path to folder*); 

... pero ¿cómo puedo ir sobre la realidad de seleccionar el archivo de destino dentro de esa carpeta principal? Si utilizo el método Process.Start, en realidad intenta abrir el archivo.

+0

Posible duplicado de [Abrir carpeta y seleccionar el archivo] (http://stackoverflow.com/questions/33463 0/abrir-carpeta-y-seleccionar-el-archivo) – RandomEngy

Respuesta

46

Según Windows Explorer Command-Line Options solo necesita iniciar un proceso explorer con el parámetro /select.

Por ejemplo, 'explorer /select,c:\Windows' abrirá una ventana con la carpeta c:\windows seleccionada.

Así que simplemente Process.Start("explorer.exe", "/select," + filename) debería ser suficiente.

+1

¡Gracias! Para mi sorpresa, cuando se instala Directory Opus, se usa en su lugar, a pesar de la referencia explícita a explorer.exe. Ésto es una cosa buena. – Crosbie

+0

@Crosbie eso es porque Directory Opus se conecta al explorador e intercepta las llamadas al mismo. –

4

Ejecutar Explorer.exe con el argumento de línea de comandos /select, "filename"

System.Diagnostics.Process.Start(
    "explorer.exe", 
    string.Format("/select, \"{0}\"", filename)); 
+0

Esto no funcionará porque el parámetro 'select' debe estar separado por comas en lugar de estar separado por espacios – Regent

+0

@regent, gracias a que se corrigió el error tipográfico. –

+0

¡Funciona muy bien! ¡Gracias! – devios1

1

carpeta que contiene, directorio auto está representado de muchas maneras !!! simples 2 formas son . y, .\. ni idea de lo que es la diferencia ..!: D De archivos de DOS y bat ... Start . o Start .\. (Y)

TRY ... estas 2 obras, sino comprobar si esta es la solución que espera!

System.Diagnostics.Process.Start("explorer.exe", @".\."); 

O

System.Diagnostics.Process.Start("explorer.exe", @"."); 

-

  • A veces la aplicación se ejecuta desde un directorio temporal o un directorio diferente (por ejemplo: en la caja de arena ... o mientras se está explorando por los antivirus. .. etc. :)
Cuestiones relacionadas