如何计算文件夹中的资源
本文关键字:文件夹 资源 计算 何计算 | 更新日期: 2023-09-27 18:25:45
我的项目中有几个图像设置为资源。现在我想把文件夹中的图像数量存储在一个变量中。
我怎样才能做到这一点?我正在构建一个WPF应用程序。当我尝试使用这样的包URL时:
string[] filePaths = Directory.GetFiles("pack://application:,,,/Resources/Images/Output/", "*.jpg");
我得到一个错误,不支持给定路径的格式。
注意:
- 某些文件中没有指定资源,它们只是在构建操作上设置为资源
- 我只需要程序集中的一些图像。它们位于特定文件夹中
我尝试过的字符串:
pack://application:,,,/资源/图像/输出/
年鉴;组件/资源/图像/输出/
将其作为普通C#代码编写(使用Directory.GetFile()
),并将其封装到T4模板中。
你无法计算资源,所以你必须计算将用作资源的文件。这里是第一枪:
<#@ template language="C#" debug="true" hostSpecific="true" #>
<#@ output extension=".cs" #>
<#@ Assembly Name="System.Core.dll" #>
<#@ import namespace="System" #>
<#@ import namespace="System.IO" #>
<#
var directory = Path.Combine(Path.GetDirectoryName(this.Host.TemplateFile), "Resources");
var folderCounter = Directory.GetFiles(@"D:'", "*.*").Length;
#>
namespace MyNamespace
{
public static class MyFilesCounter
{
public static int FilesInFolder = <#= folderCounter #>;
}
}
int i = 0;
ResourceSet resourceSet = Properties.Resources.ResourceManager.GetResourceSet(CultureInfo.CurrentUICulture, true, true);
foreach (DictionaryEntry entry in resourceSet)
{
string resourceName = entry.Key; //if you need all this, but who knows.
object resource = entry.Value;
if ((resource.GetType() == typeof(System.Drawing.Bitmap) || resource.GetType() == typeof(System.Drawing.Icon)) &&
resourceName == "someString")
{
i++;
}
}
MessageBox.Show(i.ToString());
将您的投票重定向到此处:)