指定したファイル拡張子を持つクエリ(SearchOption.AllDirectoriesは、フォルダを再帰的にすべてのファイルを取得する参照します)
文字列 startFolder = @ " C:\ Users \ユーザービビ\デスクトップ\代码\异步\ ConsoleApp4 \テスト\ " 。 DirectoryInfo dirを = 新しいDirectoryInfo(startFolder)。 IEnumerableを <のFileInfo>のfileList = dir.GetFiles("* " 、SearchOption.AllDirectories)。VAR FILEQUERY = からファイル内のfileList file.Extension ==は" .pngの" orderbyのfile.Name 選択したファイルを、foreachの(VARの項目において 、{ FILEQUERY) Console.WriteLineを(item.FullName)。 }
拡張グループファイルで
// ファイルシステムのスナップショットを取ります。 文字列 startFolder = @ " C:\ Users \ユーザービビ\デスクトップ\代码\异步\ ConsoleApp4 \テスト\ " 。 // 出力ラインをトリミングするWriteLineメソッドで使用されます。 int型 trimLength = startFolder.Length。 // ファイルシステムのスナップショットを取ります。 System.IO.DirectoryInfo DIR = 新しいSystem.IO.DirectoryInfo(startFolder)。 // このメソッドは、アプリケーションが発見権限があることを前提として // 指定したパスの下のすべてのフォルダのを。 IEnumerableを<System.IO.FileInfo>のfileList = dir.GetFiles(" *。* "、System.IO.SearchOption.AllDirectories)。 VAR queryGroupByExt = からファイル内のfileListの file.Extension.ToLower(によるグループファイル)ファイルグループに ORDERBY fileGroup.Key 選択ファイルグループを。 foreachの(VARの群におけるqueryGroupByExt) { Console.WriteLineを(group.Key)。 foreachの(VARの項目にグループ) { Console.WriteLineを($ " {item.Name} " )。 } }
ディレクトリ要求内のすべてのファイルのバイト数の合計
文字列 startFolder = @ " C:\ Users \ユーザービビ\デスクトップ\代码\异步\ ConsoleApp4 \テスト\ " 。 System.IO.DirectoryInfo DIR = 新しいSystem.IO.DirectoryInfo(startFolder)。 VAR。totalLength = dir.GetFiles()合計(X => x.Length)。 Console.WriteLineを(totalLength + " バイト")。
ファイルフォルダドッキング(らSequenceEqualを求めSEQ、交差点昆虫を、違いは除いて設定します)
文字列 pathA = @ " C:\ Users \ユーザービビ\デスクトップ\コード\非同期\ ConsoleApp4 \テスト\ " ; 文字列 pathB = @ " C:\ Users \ユーザービビ\デスクトップ\コード\非同期\ ConsoleApp4 \テスト\ testX \ " 。 DIR1 System.IO.DirectoryInfo = 新しい新しいSystem.IO.DirectoryInfo(pathA); System.IO.DirectoryInfo DIR2 = 新しい新しいSystem.IO.DirectoryInfo(pathB);
//再帰的なディレクトリことなく、最上位のディレクトリSearchOption.TopDirectoryOnlyを使用限り、最初のレイヤファイルとして、ファイルを見つけるために、フォルダ。 IEnumerableを = dir1.GetFilesのList1 <ためSystem.IO.FileInfo>(" *。* " 、SearchOption.TopDirectoryOnly); IEnumerableを LIST2 = DIR2 <ためSystem.IO.FileInfo>。" *。* " 、SearchOption.TopDirectoryOnly); // 使用するデフォルトのカスタムファイルコンパレータ FileCompare myFileCompare = 新新FileCompare(); //は、2つのシーケンスが等しいかどうか BOOL isEqualOne = list1.SequenceEqual(LIST2、myFileCompare); IF(== isEqualOne trueに) { Console.WriteLineを(" フォルダが2つの同じ" ); } 他 { Console.WriteLineを(" 2つのフォルダが同じでないの" ); } // ファイルの交点 のvar queryCommonFiles =list1.Intersect(LIST2、myFileCompare)。 もし(queryCommonFiles.Any()) { Console.WriteLineを(" 次のファイルが両方のフォルダにあります。" ); foreachの(VARの V におけるqueryCommonFiles) { Console.WriteLineを(v.FullName)。// アイテムが結果リストに終わる番組 } } // 求差集文件在LIST1却不在LIST2的文件 VAR queryList1Only = list1.Except(LIST2、myFileCompare)。 Console.WriteLineを(「次のファイルがリスト1ではなく、LIST2のとおりです。」); foreachの(VARの V におけるqueryList1Only) { Console.WriteLineを(v.FullName)。 }