Как получить полное имя файла?
Например:
У меня есть файл с именем 171_s.jpg
, который хранится на жестком диске.
Мне нужно найти файл по его частичному имени, т.е. 171_s
, и получить полное имя.
Как это реализовать?
Как получить полное имя файла?
Например:
У меня есть файл с именем 171_s.jpg
, который хранится на жестком диске.
Мне нужно найти файл по его частичному имени, т.е. 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);
}
}
Вы можете использовать System.IO.Directory.GetFiles()
http://msdn.microsoft.com/en-us/library/ms143316.aspx
public static string[] GetFiles(
string path,
string searchPattern,
SearchOption searchOption
)
путь Тип: System.String Каталог для поиска.
searchPattern Тип: System.String Строка поиска соответствует именам файлов в пути. Параметр не может заканчиваться в два периода ( ".." ) или содержать два периода ( ".." ), за которым следует DirectorySeparatorChar или AltDirectorySeparatorChar, а также не может содержать любой символ в InvalidPathChars.
searchOption Тип: System.IO.SearchOption Одно из значений SearchOption, которое указывает, должна ли операция поиска включать все подкаталоги или только текущие каталог.
Ответ уже отправлен, однако для легкого понимания здесь приведен код
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
}
Вы можете сделать это следующим образом:
....
List<string> _filesNames;
foreach(var file in _directory)
{
string name = GetFileName(file);
if(name.IndexOf(_partialFileName) > 0)
{
_fileNames.Add(name);
}
}
....