繁体   English   中英

c#执行命令行并返回字符串

[英]c# Execute command line and return string

我不能让它返回任何东西,我期待当前目录中的文件列表,但它什么也没有返回。

class Program
{
    static void Main(string[] args)
    {
        PublishProject();
        Console.ReadLine();
    }

    public static void PublishProject()
    {
        //Create process
        var pProcess = new System.Diagnostics.Process
        {
            StartInfo =
                {
                    FileName = "cmd.exe",
                    Arguments = "dir",
                    UseShellExecute = false,
                    RedirectStandardOutput = true,
                    WorkingDirectory = "C:\\"
                }
        };
        pProcess.Start();
        Console.Write(pProcess.StandardOutput.ReadToEnd());
        pProcess.Close();

        Console.WriteLine("done");
    }
}

您可以通过将Arguments更改为:

Arguments = "/C dir",

/ C Flag “执行string指定的命令,然后停止。”。 如果没有这个, cmd仍然在执行,这就是为什么你没有立即输出。

话虽这么说,对于这个例子,我个人会使用Directory.GetFilesDirectory.EnumerateFiles而不是进程。

如果要列出目录中的文件,最好的方法是使用System.IODirectory类,如下所示:

using System.IO;

string[] files = Directory.GetFiles(@"C:\");

// loop to display the filenames
for (int i=0; i < files.Length(); i++) {
    Console.WriteLine(files[i]);
}

*请注意,这不是一个完整的源代码,因为它不包含main()函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM