使用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");
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");