列出文件夹中的所有嵌入资源

San*_*San 42 c# wpf resources

在我的解决方案中,有一个包含几个文件的文件夹.所有这些文件都具有Build Action"Embedded Resource".

使用此代码,我可以获得一个文件:

assembly.GetManifestResourceStream(assembly.GetName().Name + ".Folder.File.txt");
Run Code Online (Sandbox Code Playgroud)

但有没有办法获取*.txt此文件夹中的所有文件?一个名称列表或迭代它们的方法?

mar*_*c_s 85

你可以看看

assembly.GetManifestResourceNames()
Run Code Online (Sandbox Code Playgroud)

它返回包含的所有资源的字符串数组.然后,您可以筛选该列表,以查找*.txt存储为嵌入资源的所有文件.

有关详细信息,请参阅MSDN文档GetManifestResourceNames.


dbv*_*ega 18

试试这个,返回一个包含Folder目录下所有.txt文件的数组.

private string[] GetAllTxt()
{
    var executingAssembly = Assembly.GetExecutingAssembly();
    string folderName = string.Format("{0}.Resources.Folder", executingAssembly.GetName().Name);
    return executingAssembly
        .GetManifestResourceNames()
        .Where(r => r.StartsWith(folderName) && r.EndsWith(".txt"))
        //.Select(r => r.Substring(folderName.Length + 1))
        .ToArray();
}
Run Code Online (Sandbox Code Playgroud)

注意:取消注释该//.Select(...行以获取文件名.


mas*_*_99 5

尝试一下。在这里您可以获得所有文件

string[] embeddedResources = Assembly.GetAssembly(typeof(T)).GetManifestResourceNames();
Run Code Online (Sandbox Code Playgroud)

T当然是您的类型。所以你可以通用使用