我无法让它返回任何内容,我期待当前目录中的文件列表,但它什么也没有返回。
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");
}
}
答案 0 :(得分:8)
您可以通过将Arguments
更改为:
Arguments = "/C dir",
/C Flag“执行string指定的命令,然后停止。”如果没有这个, cmd 仍然在执行,这就是为什么你不立即得到输出。
话虽如此,对于此示例,我个人会使用Directory.GetFiles或Directory.EnumerateFiles代替流程。
答案 1 :(得分:0)
如果要列出目录中的文件,最好的方法是使用Directory
中的System.IO
类,如下所示:
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()
函数。