在C#上使用命令行创建目录

时间:2016-03-02 18:47:17

标签: c# cmd

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 ();

我正在尝试使用此命令在桌面上创建一个目录,但它不会创建一个目录。谁能告诉我为什么?

1 个答案:

答案 0 :(得分: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)

您忘记在桌面上附加要创建的文件夹的名称。