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");
}
}
您可以将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()
函数。