2012-10-10 140 views
0

在我的C#應用​​程序(使用Visual Studio 2010最終版)中,用戶需要選擇某個文件。我創建了一個基本的文件瀏覽器,它幾乎可以工作,但看起來不太好。C#獲取explorer.exe返回文件路徑

我被要求使用標準的Windows文件資源管理器。

我知道如何打開它:

Process.Start("explorer.exe"); 

但我怎麼能得到它返回一個文件路徑?

+10

您應該使用['OpenFileDialog'類](http://msdn.microsoft.com/en-us/library/system.windows.forms.openfiledialog.aspx)相反(假設你使用WinForms作爲你的GUI庫)。 –

+1

explorer.exe不是一個打開/選擇文件對話框。它可以讓你使用你的電腦。改用OpenFileDialog! –

回答

3

要選擇一個文件,Net Framework提供了OpenFileDialog組件。 你可以看到在MSDN here

參考但基本上,所有你需要做的是:

創建的OpenFileDialog

的實例
using(OpenFileDialog openFileDialog1 = new OpenFileDialog()) 
{ 

設置的初始屬性

openFileDialog1.InitialDirectory = "c:\\" ; 
    openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*" ; 
    openFileDialog1.FilterIndex = 2 ; 
    openFileDialog1.RestoreDirectory = true ; 

開放調用ShowDialog的控件,等待OK用戶按下並抓取選中的文件

if(openFileDialog1.ShowDialog() == DialogResult.OK) 
    { 
     string fileSelected = openFileDialog1.FileName; 
    } 
} 

注意周圍的OpenFileDialog()using語句,而不是絕對必要的,這將確保的對話框

+2

我寧願把它放入像''using(var ofd = new OpenFileDialog()){...}'這樣的'using'塊中。 –

+1

@UweKeim,對,我會更新答案 – Steve

+0

謝謝,超過我的預期 – user1711383

0

它是 有點複雜,因爲「explorer.exe」位於%PATH%系統變量中,可執行路徑可能不存儲在Windows的任何位置(在我看來,也許是我的錯誤)。

在我知道的所有Windows版本中的「explorer.exe」位於由%WINDIR%系統變量定義的目錄中。您可以通過方法來獲得該變量:

Environment.GetEnvironmentVariable() 

,並添加字符串「explorer.exe的」。

這是簡單的方法。


更復雜的方法:

您可以通過使用WMI後發現已經運行explorer.exe進程的完整路徑 - 更復雜一些,但其更正確的方法。

點擊此處瞭解詳情: How to get full path of running process