在我的C#應用程序(使用Visual Studio 2010最終版)中,用戶需要選擇某個文件。我創建了一個基本的文件瀏覽器,它幾乎可以工作,但看起來不太好。C#獲取explorer.exe返回文件路徑
我被要求使用標準的Windows文件資源管理器。
我知道如何打開它:
Process.Start("explorer.exe");
但我怎麼能得到它返回一個文件路徑?
在我的C#應用程序(使用Visual Studio 2010最終版)中,用戶需要選擇某個文件。我創建了一個基本的文件瀏覽器,它幾乎可以工作,但看起來不太好。C#獲取explorer.exe返回文件路徑
我被要求使用標準的Windows文件資源管理器。
我知道如何打開它:
Process.Start("explorer.exe");
但我怎麼能得到它返回一個文件路徑?
要選擇一個文件,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語句,而不是絕對必要的,這將確保的對話框
我寧願把它放入像''using(var ofd = new OpenFileDialog()){...}'這樣的'using'塊中。 –
@UweKeim,對,我會更新答案 – Steve
謝謝,超過我的預期 – user1711383
你考慮過OpenFileDialog嗎?
http://msdn.microsoft.com/en-us/library/aa984392(v=vs.71).aspx
我不知道它存在,謝謝..我的搜索沒有把這個了 – user1711383
處分權也許你可以說服你的客戶接受一個標準的資源管理器的對話。 很可能你的顧客不知道他在問什麼。
在WPF中,你會使用的東西accordingt這樣:
在櫨,你會使用的東西accordingt這樣:
它是 有點複雜,因爲「explorer.exe」位於%PATH%系統變量中,可執行路徑可能不存儲在Windows的任何位置(在我看來,也許是我的錯誤)。
在我知道的所有Windows版本中的「explorer.exe」位於由%WINDIR%系統變量定義的目錄中。您可以通過方法來獲得該變量:
Environment.GetEnvironmentVariable()
,並添加字符串「explorer.exe的」。
這是簡單的方法。
更復雜的方法:
您可以通過使用WMI後發現已經運行explorer.exe進程的完整路徑 - 更復雜一些,但其更正確的方法。
點擊此處瞭解詳情: How to get full path of running process
您應該使用['OpenFileDialog'類](http://msdn.microsoft.com/en-us/library/system.windows.forms.openfiledialog.aspx)相反(假設你使用WinForms作爲你的GUI庫)。 –
explorer.exe不是一個打開/選擇文件對話框。它可以讓你使用你的電腦。改用OpenFileDialog! –