Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从另一个程序集获取以.txt结尾的嵌入文件_C#_.net - Fatal编程技术网

C# 从另一个程序集获取以.txt结尾的嵌入文件

C# 从另一个程序集获取以.txt结尾的嵌入文件,c#,.net,C#,.net,在执行程序集中获取以.txt结尾的文件没有问题: var files = Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "*.txt").OrderBy(x => x).ToList(); 但是,我想从另一个/未执行的程序集中获取以txt结尾的上述嵌入文件。这是可能的吗?上面所说的不是捕获一个“嵌入”文件,而是捕获与正在运行的应用程序位于同一目录中的所有.txt文件 如果您对另一个程序集的目录感兴趣,则需要获取该另一个

在执行程序集中获取以.txt结尾的文件没有问题:

var files = Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "*.txt").OrderBy(x => x).ToList();

但是,我想从另一个/未执行的程序集中获取以txt结尾的上述嵌入文件。这是可能的吗?

上面所说的不是捕获一个“嵌入”文件,而是捕获与正在运行的应用程序位于同一目录中的所有
.txt
文件

如果您对另一个
程序集
的目录感兴趣,则需要获取该另一个
程序集
。如果您有对程序集的引用,并且知道程序集中的公共
(例如:
SomeType
),则可以执行此操作:

var path = typeof(SomeType).Assembly.Location;
var folder = new FileInfo(path).DirectoryName;
var files = Directory.GetFiles(folder, "*.txt").OrderBy(x => x).ToList();
根据程序集的不同,系统上可能还有一些数据,例如环境变量或GAC条目


如果没有引用程序集,或者不知道文件在系统中保留特殊标志,则必须使用其他方法来获取它,这与通过将其放入配置文件、数据库、,或者类似的资源。

您可以只提供一个库函数,返回您感兴趣的字符串。是否查看了
Assembly.GetAssembly
,或者如果我理解正确,如何加载Assembly来执行此操作这不是重复的。引用的链接涉及正在执行的程序集。我知道assembly.GetAssembly,但如何获取上述文件名?@csetzkorn将文本文件嵌入程序集相当于硬编码字符串。我知道这一点。这不是重点。我不知道目录,因为它在另一个程序集中!如果它是另一个程序集的一部分,您的程序必须以某种方式引用它。我会更新我的答案是的,你可以使用var assembly=typeof(BlaClass).assembly;其中BlaClass来自包含文件的程序集。。。不知道如何获得所有以txt结尾的文件!