c# - Process.Start 从 .txt 文件到文本框
问题描述
我正在尝试解决我遇到的问题。我的工作是制作一个小应用程序,它将在应用程序窗口中显示 .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;
解决方案
而不是使用ProcessStartInfo
,尝试StreamReader
这样:
string filePath = @"C:\Folder\file.txt";
StreamReader sr = new StreamReader(filePath);
string s = sr.ReadToEndAsync().GetAwaiter().GetResult();
Console.WriteLine(s);
使用异步方法读取所有文本而不会阻塞。
推荐阅读
- mysql - 在MYSQL中将字符串从CSV转换为日期
- azure-iot-edge - IoT Edge 的 Zscaler/SSL 检查代理解决方案
- java - 我如何在这里捕获 InputMismatchException?
- javascript - 使用唯一数据填充表格单元格 - QA 自动化
- python - 通过列表推导以格式化形式打印带有 f 字符串的元组列表
- c++ - 如何创建一个接受任何模板作为模板参数的函数?
- python - 如果条目是多维的,ndarray.view() 不起作用?
- react-native - 如何修复 React Expo 中的 Require 循环警告
- image - 将 TIFF 文件输入到 Keras 模型
- postgresql - Gorm 返回不同的时间戳格式,然后用于创建记录