使用process.start打开文本文件

6
我一直在尝试从我的系统中打开一个文本文件,在计算Pearson相关性并将结果写入文本文件后,但是到目前为止由于某些原因代码没有打开任何记事本文件。我已经尝试打开其他文件,但它们工作得很好,但是特别是.txt文件无法打开,即使使用相同的代码也可以打开.docx文件!如果有人能告诉我是否有任何特定原因,请告诉我!这是我在代码中编写的行,使用Process.Start()。
System.Diagnostics.Process.Start(@"C:\Users\Atif\Desktop\1.txt");

或者

System.Diagnostics.Process.Start(Directory.GetCurrentDirectory()+"\\1.txt");

我觉得我的电脑有问题,因为我刚刚在另一台机器上尝试了相同的代码,它可以工作!但是除了这个程序之外,记事本都可以正常工作,我仍然不明白可能出了什么问题。


2
你是否将打开txt文件的默认程序设置为记事本?这只是我的猜测,可能是原因,但不确定。 - Jenish Rabadiya
如果您尝试从命令行运行它会发生什么?(例如键入类似于 start C:\Users\Atif\Desktop\1.txt 的内容)如果这样做不起作用,那么使用 Process.Start() 也不会起作用。 - Matthew Watson
4个回答

8

如果你想使用记事本打开文件,但它不是默认的文本编辑器,可以按照以下步骤进行:

Process.Start("notepad.exe", @"C:\Users\Atif\Desktop\1.txt");

是的,我也尝试了这个重载函数,但它仍然不起作用!所有其他类型的文件都可以正常打开! - Atif
当您双击文件时,记事本是否会打开? - Tom
尝试使用记事本的完整路径,而不是使用你的文件,直接尝试启动它怎么样? - Tom
System.Diagnostics.Process.Start(@"C:\Windows\system32\notepad.exe"); - Atif
你的意思是这个吗?!它仍然无法打开记事本!:( - Atif
我认为我的电脑出了些问题,我刚刚在另一台电脑上尝试了相同的代码,它可以正常运行!但我仍然不明白除了这个程序之外还可能有什么问题,记事本也能正常工作! - Atif

4

我知道这是旧的,但是我在使用 .Net 7.0(在 .Net 4.8.1 中工作)时遇到了类似的问题......

我不得不使用:

ProcessStartInfo psi = new ProcessStartInfo(Filename);
psi.Verb = "open";
psi.UseShellExecute = true;
Process.Start(psi);

0

您遇到了类型关联问题。右键单击 .txt 文件,选择“打开方式”,选择记事本并选中“始终使用...”复选框。


0

首先,您遇到了什么调试错误?

我曾经遇到过类似的问题,问题出在我的扩展名是“file.txt.txt”。

为了避免这种情况(适用于Windows 10),请关闭“隐藏已知文件类型的扩展名”: 如果文件资源管理器 - 查看 > 选项 > 更改文件夹和搜索选项 > 查看 > (取消勾选)隐藏已知文件类型的扩展名 > 应用。

显示如何显示已知文件类型的文件扩展名


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接