5 методов извлечения имен файлов с помощью Directory.GetFiles в C#

При работе с файлами в C# метод Directory.GetFilesобычно используется для получения списка путей к файлам, соответствующих заданному шаблону поиска. Однако бывают ситуации, когда вам может потребоваться извлечь имена файлов только из путей к файлам. В этой статье мы рассмотрим различные методы извлечения имен файлов с помощью Directory.GetFilesв C#, а также приведем примеры кода, демонстрирующие каждый подход.

Методы извлечения имен файлов:

  1. Использование Path.GetFileName:
    Метод Path.GetFileNameможно использовать для извлечения имени файла из заданного пути к файлу. Он возвращает имя и расширение файла в виде строки. Вот пример:
string[] filePaths = Directory.GetFiles(directoryPath, "*.*");
foreach (var filePath in filePaths)
{
    string fileName = Path.GetFileName(filePath);
    Console.WriteLine(fileName);
}
  1. Использование LINQ и Select:
    Вы можете использовать метод LINQ Selectдля извлечения имен файлов из путей к файлам. Применяя метод Path.GetFileNameк каждому пути к файлу, вы можете создать новую коллекцию, содержащую только имена файлов. Вот пример:
string[] filePaths = Directory.GetFiles(directoryPath, "*.*");
var fileNames = filePaths.Select(filePath => Path.GetFileName(filePath));
foreach (var fileName in fileNames)
{
    Console.WriteLine(fileName);
}
  1. Использование регулярных выражений.
    Регулярные выражения также можно использовать для извлечения имен файлов из путей к файлам. Определив шаблон, представляющий структуру имени файла, вы можете извлечь нужные части. Вот пример:
string[] filePaths = Directory.GetFiles(directoryPath, "*.*");
var regex = new Regex(@"[^\\]*$"); // Matches the filename at the end of the path
foreach (var filePath in filePaths)
{
    string fileName = regex.Match(filePath).Value;
    Console.WriteLine(fileName);
}
  1. Использование String.Split:
    Вы можете разделить путь к файлу, используя символ-разделитель каталогов, чтобы извлечь имя файла. Вот пример:
string[] filePaths = Directory.GetFiles(directoryPath, "*.*");
foreach (var filePath in filePaths)
{
    string fileName = filePath.Split('\\').Last();
    Console.WriteLine(fileName);
}
  1. Использование класса FileInfo.
    Класс FileInfoпредоставляет удобный способ работы с информацией о файле. Вы можете создать объект FileInfoдля каждого пути к файлу и получить свойство Name, которое представляет имя файла. Вот пример:
string[] filePaths = Directory.GetFiles(directoryPath, "*.*");
foreach (var filePath in filePaths)
{
    var fileInfo = new FileInfo(filePath);
    string fileName = fileInfo.Name;
    Console.WriteLine(fileName);
}

В этой статье мы рассмотрели пять различных методов извлечения имен файлов с помощью Directory.GetFilesв C#. Каждый метод предлагает свой подход к выполнению задачи. Используя эти методы, вы можете легко извлекать имена файлов из путей к файлам и выполнять над ними дальнейшие операции.