C# 開啟指定路徑下檔案
/// <summary> /// 開啟指定路徑下檔案,比如:Word、Excel、Dll、圖片等都可以(前提是你已經安裝開啟程式的對應軟體) /// </summary> /// <param name="NewFileName">eg:D:\Test\模版8.doc</param> /// <param name="NewFileName">eg:D:\Test\模版8.doc</param> private void OpenFile(string NewFileName) { Process process = new Process(); ProcessStartInfo processStartInfo = new ProcessStartInfo(NewFileName); process.StartInfo = processStartInfo;# region 下面這段被注釋掉代碼(可以用來全屏開啟代碼)////建立新的系統進程 //System.Diagnostics.Process process = new System.Diagnostics.Process(); ////設定檔案名稱,此處為圖片的真實路徑+檔案名稱(需要有尾碼) //process.StartInfo.FileName = NewFileName; ////此為關鍵區段。設定進程運行參數,此時為已最大化的視窗顯示圖片。 //process.StartInfo.Arguments = "rundll32.exe C://WINDOWS//system32//shimgvw.dll,ImageView_Fullscreen"; //// 此項為是否使用Shell執行程式,因系統預設為true,此項也可不設,但若設定必須為true //process.StartInfo.UseShellExecute = true;#endregion try { process.Start(); try { // process.WaitForExit(); } catch (Exception ex) { throw ex; } } catch (Exception ex) { throw ex; } finally { try { if (process != null) { process.Close(); process = null; } } catch { } } }
今天,測試的時候,不知道誰在
process.StartInfo = processStartInfo;
這個句話的後面,添加了這麼一句話:
process.StartInfo.UseShellExecute = false;
一開始也沒注意,然後一直報下面這個錯誤:
The specified executable is not a validapplication for this OS platform.
解釋:
ProcessStartInfo.UseShellExecute 屬性:擷取或設定一個值,該值指示是否使用作業系統外殼程式啟動進程。
屬性值:
若要在啟動進程時使用外殼程式,則為 true;否則,直接從可執行檔建立進程。預設為 true。將屬性設定為 false 能夠重新導向輸入資料流、輸出資料流和錯誤流。否則不行。
使用作業系統外殼程式啟動進程時,可以使用 Process 組件啟動任何文檔(可以是與可執行檔關聯的、具有預設開啟操作的任何註冊檔案類型),並對該檔案執行操作(如列印)。如果 UseShellExecute 為 false,則只能使用 Process組件啟動可執行檔。
以上就是C# 開啟指定路徑下檔案的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!