从程序集中获取文件

本文关键字:获取 文件 集中 程序集 程序 | 更新日期: 2023-09-27 18:26:13

我想从以下结构中读取一个文件路径

结构类似于:AssemblyName->MyFiles(文件夹)->Text.txt

在这里我想获得Text.txt的路径。请帮助

从程序集中获取文件

我认为您要查找的是嵌入在程序集中的文件。看看这个问题。第一个答案解释了如何设置嵌入式文件,以及如何从代码中获取它。

您可以进行

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 AlwaysCopy if Newer

一般来说,您应该始终将任何IO封装在适当的try-catch块中,或者使用静态File.Exists(path)方法来检查文件是否存在