Как я могу получить полное имя файла?
Например:
У меня есть файл с именем 171_s.jpg, который хранится на жестком диске.
171_s.jpg
Мне нужно найти файл по его частичному имени, т.е. 171_s, и получить полное имя.
171_s
Как я могу это реализовать?
Вот пример использования GetFiles ():
static void Main(string[] args) { string partialName = "171_s"; DirectoryInfo hdDirectoryInWhichToSearch = new DirectoryInfo(@"c:\"); FileInfo[] filesInDir = hdDirectoryInWhichToSearch.GetFiles("*" + partialName + "*.*"); foreach (FileInfo foundFile in filesInDir) { string fullName = foundFile.FullName; Console.WriteLine(fullName); } }
Ответ уже опубликован, однако для простоты понимания здесь указан код
string folderPath = @"C:/Temp/"; DirectoryInfo dir= new DirectoryInfo(folderPath); FileInfo[] files = dir.GetFiles("171_s*", SearchOption.TopDirectoryOnly); foreach (var item in files) { // do something here }
Вы можете использовать System.IO.Directory.GetFiles()
System.IO.Directory.GetFiles()
http://msdn.microsoft.com/en-us/library/ms143316.aspx
public static string[] GetFiles( string path, string searchPattern, SearchOption searchOption )
path Тип: System.String Каталог для поиска. searchPattern Тип: System.String Строка поиска, совпадающая с именами файлов в пути.Параметр не может заканчиваться двумя периодами ("..") или содержать два периода (".."), за которыми следует DirectorySeparatorChar или AltDirectorySeparatorChar, а также он не может содержать символы InvalidPathChars. searchOption Тип: System.IO.SearchOption Одно из значений SearchOption, которое указывает, должна ли операция поиска включать все подкаталоги или только текущий каталог.
path Тип: System.String Каталог для поиска.
searchPattern Тип: System.String Строка поиска, совпадающая с именами файлов в пути.Параметр не может заканчиваться двумя периодами ("..") или содержать два периода (".."), за которыми следует DirectorySeparatorChar или AltDirectorySeparatorChar, а также он не может содержать символы InvalidPathChars.
searchOption Тип: System.IO.SearchOption Одно из значений SearchOption, которое указывает, должна ли операция поиска включать все подкаталоги или только текущий каталог.
Вы можете сделать это так:
.... List<string> _filesNames; foreach(var file in _directory) { string name = GetFileName(file); if(name.IndexOf(_partialFileName) > 0) { _fileNames.Add(name); } } ....