2012-03-28 20 views
8

私はDirectory.GetFilesを使用して特定のフォルダからファイルを取得しています。 デフォルトでは、そのフォルダのファイルはファイル名でソートされます。ファイル名のアルファベット順。私は、ファイルが変更される順番でファイルを取得したい。Directory.GetFiles日付で並べ替え

私は特定のキーワードを含むファイルを取得するためにDirectory.GetInfoを使用できません。 ファイルを変更日時でソートするにはどうすればいいですか? 私は任意の助けをいただければ幸いです

string[] arr1 = Directory.GetFiles("D:/TestFolder", "*"Test12"*"); 

次のコードを使用しています。

DirectoryInfo di = new DirectoryInfo("D:\\TestFolder"); 
FileSystemInfo[] files = di.GetFileSystemInfos(); 
var orderedFiles = files.Where(f=>f.Name.StartsWith("Test12")) 
         .OrderBy(f => f.CreationTime) 
         .ToList(); 

以下についてのあなたの必要性(.Contains、など)に対して、任意の文字列関数でf.Name.StartWithを置き換えることができるもの

答えて

10

あなたは心の中で変更された時間が、クマを取得するためにf.LastWriteTimef => f.CreationTimeを置き換えることができますWindows Vistaで始まるの最終アクセス時刻は、デフォルトではに更新されていません。これは、ファイルシステムのパフォーマンス

+0

であることを行うことができますどのようにこれをVBのファイルで記述する.OrderBy(f => f.CreationTime) –

5

を改善することであるあなたは、ディレクトリ情報を変更する場合は、

FileInfo[] files = new DirectoryInfo("path") 
         .GetFiles("filter") 
         .OrderBy(f => f.CreationTime) 
         .ToArray(); 

編集行うことができます:
に変更した日付を望んで見た、f.LastWriteTime代わり

関連する問題