从.txt文件到文本框的Process.Start

时间:2019-06-22 17:18:09

标签: c#

我正在尝试解决我遇到的问题。我的工作是制作一个小的应用程序,它将在应用程序窗口中显示.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;

2 个答案:

答案 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

使用异步方法读取所有文本而不会阻塞。