2010-05-14 61 views

回答

0

嘗試搜索在CodePlex上一口流利的路徑...它給快捷方式使用lambda表達式目錄內檢索算法對文件/ LINQ

0

看一看的DirectoryInfo類。

你可能會需要一點遞歸的事情

0

使用LINQ和Directory.EnumerateFiles

var files = 
    from file in Directory.EnumerateFiles(rootFolder,searchFor,SearchOption.AllDirectories) 
    select file; 
1

使用遞歸看看。

編寫一個在特定文件夾中搜索文件的方法。 從每個子目錄的本身內部調用該方法,並讓它在找到該文件時返回該路徑。

僞C#-Code(僅適用於獲得的想法):

public string SearchFile (string path, string filename) 
{ 
    if (File.exists(path+filename)) return path; 

    foreach(subdir in path) 
    { 
     string dir = Searchfile(subdirpath,filename); 
     if (dir != "") return dir; 
    } 
} 

這將通過所有子目錄運行和路徑返回到搜索到的文件,如果它在那裏,否則一個空字符串。

1

試試這個:

static string SearchFile(string folderPath, string fileToSearch) 
{ 
    string foundFilePath = null; 
    ///Get all directories in current directory 
    string[] directories = Directory.GetDirectories(folderPath); 

    if (directories != null && directories.Length > 0) 
    { 
     foreach (string dirPath in directories) 
     { 
      foundFilePath = SearchFile(dirPath, fileToSearch); 
      if (foundFilePath != null) 
      { 
       return foundFilePath; 
      } 
     }     
    } 

    string[] files = Directory.GetFiles(folderPath); 
    if (files != null && files.Length > 0) 
    { 
     foundFilePath = files.FirstOrDefault(filePath => Path.GetFileName(filePath).Equals(fileToSearch, StringComparison.OrdinalIgnoreCase));     
    } 

    return foundFilePath; 
}