2012-03-10 12 views
7

Durante la ricerca di un file in Esplora risorse e clic con il pulsante destro del mouse su un file dai risultati della ricerca; c'è un'opzione: "Apri posizione file". Voglio implementare lo stesso nel mio C# WinForm. Ho fatto questo:Posizione file aperta

if (File.Exists(filePath) 
{ 
    openFileDialog1.InitialDirectory = new FileInfo(filePath).DirectoryName; 
    openFileDialog1.ShowDialog(); 
} 

C'è un modo migliore per farlo?

+1

Qual è il problema con la soluzione? se 'openFileDialog_View' è un OpenFileDialog, verrà visualizzata una finestra di dialogo che richiede all'utente di ** aprire ** un file. – gideon

+0

Voglio qualche altro modo alternativo e migliore? –

+1

Vedere la mia risposta quindi :) – gideon

risposta

28

Se openFileDialog_View è un OpenFileDialog, verrà visualizzata una finestra di dialogo che richiede all'utente di aprire un file. Presumo che tu voglia effettivamente aprire la posizione in explorer.

Si potrebbe fare questo:

if (File.Exists(filePath)) 
{ 
    Process.Start("explorer.exe", filePath); 
} 

Per selezionare un file explorer.exe prende un argomento /select come questo:

explorer.exe /select, <filelist> 

ho ricevuto questo da un SO posta: Opening a folder in explorer and selecting a file

Quindi il tuo il codice sarebbe:

if (File.Exists(filePath)) 
{ 
    Process.Start("explorer.exe", "/select, " + filePath); 
} 
+0

questo dovrebbe essere "explorer.exe" – scartag

+0

nice Mr. gideon. ma voglio che quel file sia selezionato, come? –

+1

@H_wardak Aggiornato la mia risposta. Una semplice [ricerca di google] (http://www.google.co.in/webhp?sourceid=chrome-instant&ix=sea&ie=UTF-8&ion=1#hl=en&output=search&sclient=psy-ab&q=open%20explorer%20e % 20select% 20file & oq = & aq = & aqi = & aql = & gs_sm = & gs_upl = & gs_l = & PBX = 1 & fp = 237055d012d02b32 & ix = mare & ione = 1 & bav = on.2, or.r_gc.r_pw.r_cp.r_qf., cf.osb & biw = 1366 & bih = 643) mi ha portato a quel post SO. – gideon

4

Ecco come lo faccio nel mio codice. Questo aprirà la directory dei file in explorer e selezionerà il file specificato proprio come fa Windows Explorer.

if (File.Exists(path)) 
{ 
    Process.Start(new ProcessStartInfo("explorer.exe", " /select, " + path); 
} 
+1

c'è qualche vantaggio se utilizzo "ProcessStartInfo"? È anche senza lavoro. –

Problemi correlati