使用WPF打开文本文件

本文关键字:文本 文件 WPF 使用 | 更新日期: 2023-09-27 17:58:53

我在项目根文件夹中创建了一个文本文件。现在,我正在尝试使用Process.Start()方法从外部启动该文本文件。

我遇到的问题是文件路径不正确,Process.Start()找不到这个文本文件。我的代码如下:

Process.Start("Textfile.txt");

那么,我应该如何正确引用该文本文件呢?我可以使用相对路径而不是绝对路径吗?谢谢

编辑:如果我把上面的代码改成这个,它能工作吗?

string path = Assembly.GetExecutingAssembly().Location;
Process.Start(path + "/ReadMe.txt");

使用WPF打开文本文件

Windows需要知道在哪里可以找到文件,因此您需要以某种方式指定:

使用绝对路径:

Process.Start("C:''1.txt");

或者设置当前目录:

Environment.CurrentDirectory = "C:''";
Process.Start("1.txt");

通常,CurrentDirectory被设置为可执行文件的位置。

[编辑]

如果文件位于可执行文件所在的同一目录中,则可以使用以下代码:

var directory = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
var file = Path.Combine(directory, "1.txt");
Process.Start(file);

这样做很好。这将找到与exe在同一目录中的文本文件,并使用默认应用程序(可能是notepad.exe)打开它

http://www.dotnetperls.com/process-start

但是,如果要在中放置路径,则必须使用完整路径。您可以使用本文中列出的方法构建完整路径,同时只关心相对路径:

http://social.msdn.microsoft.com/Forums/en-US/vbgeneral/thread/e763ae8c-1284-43fe-9e55-4b36f8780f1c

它看起来像这样:

string pathPrefix;
if(System.Diagnostics.Debugger.IsAttached())
{
    pathPrefix = System.IO.Path.GetFullPath(Application.StartupPath + "'..'..'resources'");
}
else
{
    pathPrefix = Application.StartupPath + "'resources'";
}
Process.Start(pathPrefix + "Textfile.txt");

这是为了打开您添加到项目中名为"资源"的文件夹中的文件。如果你想把它放在你的项目根目录中,只需把resources文件夹放在上面两个字符串中,你就可以开始了。

如果要使用相对路径,您需要知道当前目录。

System.Envrionment.CurrentDirectory 

你可以用path 把它附加到你的路径上

System.IO.Path.Combine(System.Envrionment.CurrentDirectory, "Textfile.txt")

尝试使用Application.StartupPath路径作为默认路径,该路径可能指向当前目录。

此场景已在以下链接中进行了解释。。

C#.NET 中的Environment.CurrentDirectory

http://start-coding.blogspot.com/2008/12/applicationstartuppath.html

在窗口框上:

启动记事本,文件的位置紧随其后。WIN

process.start("notepad C:'Full'Directory'To'File'FileName.txt");