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

本文关键字:返回 字符串 命令行 执行 | 更新日期: 2023-09-27 18:24:41

我无法让它返回任何内容,我希望当前目录中有一个文件列表,但它没有返回任何内容。

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");
    }
}

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

您可以将Arguments更改为:

Arguments = "/C dir",

/C标志"执行字符串指定的命令,然后停止。"。如果没有这个标志,cmd仍在执行,这就是为什么你没有立即得到输出的原因。

也就是说,对于这个例子,我个人会使用Directory.GetFiles或Directory.EnumerateFiles而不是进程。

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

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()函数。