c#DirectoryInfo.GetFiles(按通用mime类型)
有没有办法通过通用mime类型获取文件 示例:对于所有图像(“图像/png,图像/jpeg,…”):c#DirectoryInfo.GetFiles(按通用mime类型),c#,C#,有没有办法通过通用mime类型获取文件 示例:对于所有图像(“图像/png,图像/jpeg,…”): 我不确定,但你是说Directory.GetFiles吗?如果是,您可以搜索特定的文件格式,如: Directory.GetFiles(filepath, ".png"); Directory.GetFiles(filepath, ".jpeg"); // etc... 扩展名将是MIME类型的一个明显的赠品。我不确定,但你是说Directory.GetFiles吗?如果是,您可以搜索特定的文
我不确定,但你是说Directory.GetFiles吗?如果是,您可以搜索特定的文件格式,如:
Directory.GetFiles(filepath, ".png");
Directory.GetFiles(filepath, ".jpeg");
// etc...
扩展名将是MIME类型的一个明显的赠品。我不确定,但你是说Directory.GetFiles吗?如果是,您可以搜索特定的文件格式,如:
Directory.GetFiles(filepath, ".png");
Directory.GetFiles(filepath, ".jpeg");
// etc...
扩展将是MIME类型的一个明显的赠品。不容易。DirectoryInfo与文件系统相反,文件系统本身不包含MIME类型信息
您可以使用GetFiles()和扩展名按扩展名获取所有文件。您还可以点击注册表项
HKEY\U CLASSES\U ROOT\MIME\Database\Content Type
将MIME类型列表转换为扩展列表。不容易。DirectoryInfo与文件系统相反,文件系统本身不包含MIME类型信息
您可以使用GetFiles()和扩展名按扩展名获取所有文件。您还可以点击注册表项
HKEY\U CLASSES\U ROOT\MIME\Database\Content Type
将MIME类型列表转换为扩展列表。DirectoryInfo.GetFiles方法允许将的searchpattern设置为通配符,例如?及*
因此DirectoryInfo.GetFiles没有任何按mime类型获取文件的选项
但是你可以使用UrlMon,比如看这篇文章:DirectoryInfo.GetFiles方法允许将searchpattern与通配符放在一起,比如?及* 因此DirectoryInfo.GetFiles没有任何按mime类型获取文件的选项
但是你可以使用UrlMon,比如看这篇文章:出于兼容性的原因,最好将文件类型包含在一个数组中,例如
string[] imagemime = new []{".jpg", ".gif", ".png", ".bmp", ".jpe", ".jpeg", ".wmf", ".emf", ".xbm", ".ico", ".eps", ".tif", ".tiff", ".g01", ".g02", ".g03", ".g04", ".g05", ".g06", ".g07", ".g08"};
然后你可以有这样一个方法:
private static IEnumerable<string> GetFiles(string sourceFolder, string[] exts, System.IO.SearchOption searchOption)
{
return System.IO.Directory.GetFiles(sourceFolder, "*.*", searchOption)
.Where(s=>exts.Contains(System.IO.Path.GetExtension(s), StringComparer.OrdinalIgnoreCase));
}
私有静态IEnumerable GetFiles(string sourceFolder、string[]exts、System.IO.SearchOption SearchOption)
{
返回System.IO.Directory.GetFiles(sourceFolder,“***”,searchOption)
.Where(s=>exts.Contains(System.IO.Path.GetExtension,StringComparer.OrdinalIgnoreCase));
}
您可以看到与其他备选方案的性能比较。出于兼容性原因,最好将文件类型包含在数组中,例如
string[] imagemime = new []{".jpg", ".gif", ".png", ".bmp", ".jpe", ".jpeg", ".wmf", ".emf", ".xbm", ".ico", ".eps", ".tif", ".tiff", ".g01", ".g02", ".g03", ".g04", ".g05", ".g06", ".g07", ".g08"};
然后你可以有这样一个方法:
private static IEnumerable<string> GetFiles(string sourceFolder, string[] exts, System.IO.SearchOption searchOption)
{
return System.IO.Directory.GetFiles(sourceFolder, "*.*", searchOption)
.Where(s=>exts.Contains(System.IO.Path.GetExtension(s), StringComparer.OrdinalIgnoreCase));
}
私有静态IEnumerable GetFiles(string sourceFolder、string[]exts、System.IO.SearchOption SearchOption)
{
返回System.IO.Directory.GetFiles(sourceFolder,“***”,searchOption)
.Where(s=>exts.Contains(System.IO.Path.GetExtension,StringComparer.OrdinalIgnoreCase));
}
您可以看到性能与其他备选方案的比较。这些扩展可能是MIME类型的线索。但是,不能保证扩展名说出了文件内容的真相。这是很公平的。哈哈。由于他正在检查计算机/服务器上的目录,我认为扩展很可能是在说实话。然而,这是一个非常有道理的观点。我只是想知道在他的问题中,它在哪里说它只是在他的计算机上很好。你让我笑了。+1扩展可能是MIME类型的线索。但是,不能保证扩展名说出了文件内容的真相。这是很公平的。哈哈。由于他正在检查计算机/服务器上的目录,我认为扩展很可能是在说实话。然而,这是一个非常有道理的观点。我只是想知道在他的问题中,它在哪里说它只是在他的计算机上很好。你让我笑了。+1