【发布时间】:2012-03-18 04:25:11
【问题描述】:
我想从下面的结构中读取一个文件路径
结构类似于:AssemblyName -> MyFiles (Folder) -> Text.txt
这里我要获取Text.txt的路径。请帮忙
【问题讨论】:
标签: c#
我想从下面的结构中读取一个文件路径
结构类似于:AssemblyName -> MyFiles (Folder) -> Text.txt
这里我要获取Text.txt的路径。请帮忙
【问题讨论】:
标签: c#
我认为您正在寻找的是嵌入程序集中的文件。查看this question。第一个答案解释了如何设置嵌入文件,以及如何从代码中获取。
【讨论】:
你可以的
string assemblyPath = Assembly.GetExecutingAssembly().Location;
string assemblyDirectory = Path.GetDirectoryName(assemblyPath);
string textPath = Path.Combine(assemblyDirectory, "MyFiles", "Test.txt");
string text = File.ReadAllText(textPath);
...只是将其拆分一些...但是您可以将其全部写在一行中,不用说...
或者,如果您的 Environment.CurrentDirectory 已经设置为执行程序集所在位置的目录,您可以这样做
File.ReadAllText(Path.Combine("MyFiles", "Text.txt"));
【讨论】:
Jeff 已经介绍了您如何获得路径,如果您对他的回答的评论是您想要打开的文件实际上包含在您的项目输出中?
在相关文件的属性窗格下查看Copy to Output Directory 选项 - 它通常默认为Do not copy。如果您想在编译程序的输出目录中包含一个文件,您需要将其设置为Copy Always 或Copy if Newer。
作为一般说明,您应该始终将任何 IO 包装在适当的 try catch 块中,或使用静态 File.Exists(path) 方法来检查文件是否存在
【讨论】: