C# 从另一个程序集获取以.txt结尾的嵌入文件
在执行程序集中获取以.txt结尾的文件没有问题:C# 从另一个程序集获取以.txt结尾的嵌入文件,c#,.net,C#,.net,在执行程序集中获取以.txt结尾的文件没有问题: var files = Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "*.txt").OrderBy(x => x).ToList(); 但是,我想从另一个/未执行的程序集中获取以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结尾的文件!