Nano Hash - криптовалюты, майнинг, программирование

Получение имени файла из строки

Не могли бы вы помочь мне найти имя файла из строки. Теперь у меня есть одна строка содержимого, например «C:\xxxx\xxxx\xxxx\abc.pdf». Но мне нужно только имя файла, т.е. абв.pdf. Как это получится при использовании строковых функций?

30.04.2010

Ответы:


1

Используйте Path.GetFileName:

string full = @"C:\xxxx\xxxx\xxxx\abc.pdf";
string file = Path.GetFileName(full);
Console.WriteLine(file); // abc.pdf

Обратите внимание, что это предполагает, что последняя часть имени является файлом, а не проверяется. Поэтому, если вы укажете ему «C:\Windows\System32», он будет требовать имя файла System32, хотя на самом деле это каталог. (Однако передача «C:\Windows\System32\» вернет пустую строку.) Вы можете использовать File.Exists, чтобы убедиться, что файл существует и является файлом, а не каталогом, если это поможет.

Этот метод также не проверяет, существуют ли все другие элементы в иерархии каталогов, поэтому вы можете передать «C:\foo\bar\baz.txt», и он вернет baz.txt, даже если foo и bar не существуют. существует.

30.04.2010
  • @Dilse Naaz: Боюсь, я не понимаю вашего комментария. Код, который я показал, работает со строками. 30.04.2010

  • 2

    Используйте метод Path.GetFileName().

    (Отредактированный) образец со страницы MSDN:

    string fileName = @"C:\xxxx\xxxx\xxxx\abc.pdf";
    string path = @"C:\xxxx\xxxx\xxxx\";
    string path2 = @"C:\xxxx\xxxx\xxxx";
    
    string result;
    
    result = Path.GetFileName(fileName);
    Console.WriteLine("GetFileName('{0}') returns '{1}'", 
        fileName, result);
    
    result = Path.GetFileName(path);
    Console.WriteLine("GetFileName('{0}') returns '{1}'", 
        path, result);
    
    result = Path.GetFileName(path2);
    Console.WriteLine("GetFileName('{0}') returns '{1}'", 
        path2, result);
    

    Этот код производит вывод, аналогичный следующему:

    GetFileName('C:\xxxx\xxxx\xxxx\abc.pdf') returns 'abc.pdf'
    GetFileName('C:\xxxx\xxxx\xxxx\') returns ''
    GetFileName('C:\xxxx\xxxx\xxxx') returns 'xxxx'
    
    30.04.2010

    3

    Sytem.IO.FileInfo тоже довольно круто: в вашем случае вы можете сделать

    FileInfo fi = new FileInfo("C:\xxxx\xxxx\xxxx\abc.pdf");
    string name = fi.Name; // it gives you abc.pdf
    

    Затем вы можете получить еще несколько фрагментов информации:
    существует ли файл на самом деле? fi.Exists дает вам ответ
    какое у него расширение? см. fi.Extension
    как называется его каталог? см. fi.Directory
    и т. д.

    Посмотрите на всех членов FileInfo вы можете найти что-то интересное для ваших нужд

    30.04.2010

    4

    Используйте методы System.IO.Path, особенно Path.GetFileName.

    30.04.2010

    5

    System.IO.Path.GetFilename(yourFilename) вернет имя файла.

    30.04.2010

    6

    Вы можете использовать:

    System.IO.Path.GetFileNameWithoutExtension("C:\xxxx\xxxx\xxxx\abc.pdf")
    

    И ты вернешься abc

    14.04.2021
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..