2016-03-02 33 views
0
System.Diagnostics.Process process = new System.Diagnostics.Process(); 
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); 
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 
startInfo.FileName = "cmd.exe"; 
startInfo.Arguments = "md " + Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); 
process.StartInfo = startInfo; 
process.Start(); 

我試圖用這個命令在桌面上製作一個目錄,但是它並沒有做出一個。誰能告訴我爲什麼?用C上的命令行製作目錄#

+5

爲什麼你這樣做,只是出於好奇? .NET有內置的操作文件系統的能力(例如創建目錄等) –

+0

出於安全原因,我正在測試一個基本命令來執行其他的操作 –

+0

您正在混合兩種方法,這可能是您的問題。請試試@ roryap建議的內容或者使用純粹的命令行命令。 –

回答

3

只是這樣做:

Directory.CreateDirectory(Path.Combine(
    Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), 
    "my new folder name")); 

總是喜歡使用.NET類庫,而不是調用外部程序做你的工作,除非你有一個非常具體理由不這樣做。


你的一個代碼不工作的原因是因爲你使用了錯誤的語法cmd.exe。爲了通過一個命令作爲參數,你必須使用與/K開關(使用cmd /?瞭解更多信息)如下:

cmd.exe /K MD "c:\test\blah" 

另一個原因您的代碼將無法正常工作是路徑你提供給MD命令只是路徑桌面本身:

Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) 

你忘了追加要在桌面創建該文件夾的名稱。