[英]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.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()
函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.