我正在尝试解决我遇到的问题。我的工作是制作一个小的应用程序,它将在应用程序窗口中显示.txt文件内部的文本,但是由于某些原因,他们告诉我我必须使用@ ShellExecute(使用Process.Start)。 有没有办法做到这一点?因为当我使用ShellExecute时,该文件会在按下按钮后在记事本中打开,我想这是使用Shell的重点。
我尝试执行的操作几乎没有代码,但是没有成功。 感谢您的建议!
string filePath = @"C:\Folder\file.txt";
ProcessStartInfo psi = new ProcessStartInfo(filePath);
psi.UseShellExecute = false;
psi.RedirectStandardOutput = true;
psi.CreateNoWindow = true;
var proc = Process.Start(psi);
string s = proc.StandardOutput.ReadToEnd();
textBox1.Text = s;
答案 0 :(得分:0)
如果绝对需要这样做,则可以创建第二个应用程序TxtToTextBox
,您可以使用Process.Start
在第一个应用程序中运行该应用程序(使用该应用程序的路径初始化ProcessStartInfo
而不是txt文件)。
然后,您可以使用psi.Arguments = $"\"{filePath}\";
为该过程提供一个指向文件的参数(这还会在路径周围添加引号,因此可以转义空格)。
然后在第二个应用程序中可以执行理智的操作,只需使用File.ReadAllLines(args[0])
读取文件并将其打印到文本框中即可。
如果可能的话,我建议与告诉您使用Process.Start
的任何人进行交谈,并询问他们为什么应该使用的更多原因,因为这是我认为的最round回的方法之一的。
答案 1 :(得分:0)
请像这样尝试min_cuts(a,b)=min_cuts(b,a)
而不是使用ProcessStartInfo
:
StreamReader
使用异步方法读取所有文本而不会阻塞。