一般的なmimeタイプでファイルを取得する方法はありますか?
例:すべての画像( "image / png、image / jpeg、...")の場合:
DirectoryInfo.GetFiles("image")
一般的なmimeタイプでファイルを取得する方法はありますか?
例:すべての画像( "image / png、image / jpeg、...")の場合:
DirectoryInfo.GetFiles("image")
互換性の理由から、ファイルタイプを自分で配列に含めることをお勧めします。
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));
}
ここで、他の選択肢とのパフォーマンスの比較を見ることができます。
簡単ではありません。DirectoryInfoは、本質的にMIMEタイプ情報を含まないファイルシステムに反します。
GetFiles()と拡張子を使用して、拡張子ごとにすべてのファイルを取得できます。HKEY_CLASSES_ROOT\MIME\Database\Content Type
レジストリキーを押して、MIMEタイプのリストを拡張機能のリストに変えることもできます。
よくわかりませんが、Directory.GetFilesのことですか?その場合は、次のような特定のファイル形式を検索できます。
Directory.GetFiles(filepath, ".png");
Directory.GetFiles(filepath, ".jpeg");
// etc...
拡張機能は、MIMEタイプを明確に示すものになります。
DirectoryInfo.GetFilesメソッドを使用すると、?などのワイルド文字を使用しての検索パターンを配置できます。と *
したがって、DirectoryInfo.GetFilesには、mimeタイプでファイルを取得するオプションがありません。
ただし、UrlMonを使用して、次の投稿を参照できます。たとえば、.NETを使用して、拡張子ではなくファイル署名に基づいてファイルのmimeタイプを見つけるにはどうすればよいですか。