2010-05-14 4 views

ответ

0

попытка поиск по беглому пути в CodePlex ... это дает ярлыки к поиску файлов в каталогах с помощью лямбды/Linq

0

Посмотри на DirectoryInfo класса.

Вы, вероятно, понадобится немного рекурсии происходит

0

С Linq и Directory.EnumerateFiles

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

Использование рекурсии.

Напишите способ поиска файла в определенной папке. Вызовите метод изнутри для каждого подкаталога и пусть он вернет путь, если он найдет файл.

Псевдо-C# -кода (только для получения идеи):

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; 
} 
Смежные вопросы