查看完整版本: Diagnostics.Process.Start問題
頁: [1]

cm101115 發表於 2017-12-22 12:49 AM

Diagnostics.Process.Start問題

想請問各位
我在cmd中可以使用的程式碼
winrar a -m0 E:\test.rar  E:\test
為何在vs中沒法使用
System.Diagnostics.Process.Start("winrar a -m0 " + "E:\\test.rar E:\\test");
執行?<div></div>

sggleeee 發表於 2017-12-22 03:03 AM

以7z指令解壓縮檔案為例,底下方式給你參考:
            System.Diagnostics.ProcessStartInfo info = new
               System.Diagnostics.ProcessStartInfo();

            info.FileName = @"C:\Program Files\7-Zip\7z.exe";
            info.Arguments = "e c:\\Test.zip -oc:\\Test";
            System.Diagnostics.Process.Start(info);

System.Diagnostics.Process.Start(@"C:\Program Files\7-Zip\7z.exe", "e c:\\Test.zip -oc:\\Test");
關於Process.Start方法的使用,請參考官方線上文件 (google關鍵字 "Process.Start" 就可以找到)...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

sunneo 發表於 2018-1-21 03:21 AM

原因應該是出在PATH環境變數並沒有直接作用在你新生成的Process上,
你要確定winrar這個能不能被找到,要先確認Environment裡面有沒有對應的PATH
比方說
String pathVar= System.Environment.GetEnvironmentVariable("PATH");
Process process=new Process();
process.StartInfo.UseShellExecute = false;
process.StartInfo.EnvironmentVariable["PATH"]=pathVar;
process.StartInfo.FileName="winrar.exe";
process.StartInfo.Arguments= "a -m0 " + "E:\\test.rar E:\\test";
process.Start();

...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>
頁: [1]