2012-02-09 2 views
3

디렉토리를 읽고 특정 검색 패턴으로 파일을 가져 오는 데 사용하는이 기능이 있습니다. 생성 된 날짜 또는 수정 날짜를 기반으로 검색 패턴을 사용하는 방법이 있습니까?C에서 작성된 날짜를 기준으로 파일 검색 #

public static List<FileInfo> GetFileList(string fileSearchPattern, string rootFolderPath) 
{ 
    DirectoryInfo rootDir = new DirectoryInfo(rootFolderPath); 

    List<DirectoryInfo> dirList = new List<DirectoryInfo>(
     rootDir.GetDirectories("*", SearchOption.AllDirectories)); 
    dirList.Add(rootDir); 

    List<FileInfo> fileList = new List<FileInfo>(); 

    foreach (DirectoryInfo dir in dirList) 
    { 
     fileList.AddRange(
      dir.GetFiles(fileSearchPattern, SearchOption.TopDirectoryOnly)); 
    } 

    return fileList; 
} 

답변

12

아니요.하지만 Linq로 신속하게 필터링 할 수 있습니다. 이것은 예를 들어, 지난 달부터 나에게 파일을 제공

var files = from c in directoryInfo.GetFiles() 
      where c.CreationTime >somedate 
      select c; 
+0

+1 - 우아하고 간단합니다. –

+0

예, IEnumerable을 List로 변환해야했지만 문제가 발생했습니다. 고맙습니다 – themis

4

: 같은 것을

new DirectoryInfo("c:\\Aaron") 
    .EnumerateFileSystemInfos("*.*", SearchOption.AllDirectories) 
    .Where(file => 
     file.CreationTime > DateTime.Now.AddMonths(-1)); 
+0

고맙습니다 나중에 사용하기 위해 필요합니다 – themis

0

사용

System.Linq; 

var files = directoryInfo.GetFiles().Where(a => a.CreationTime>yourDate).ToList(); 

을 사용할 수 있습니다 이것은 당신에게 목록 컬렉션을 제공 할 것입니다.

관련 문제