string path = "C:/folder1/folder2/file.txt";
Какие объекты или методы я мог бы использовать, чтобы дать мне результат folder2
?
c#
path
filesystems
Эш Бурлаченко
источник
источник
Ответы:
Я бы, вероятно, использовал что-то вроде:
Внутренний вызов
GetDirectoryName
вернет полный путь, а внешний вызовGetFileName()
вернет последний компонент пути, который будет именем папки.Этот подход работает независимо от того, существует ли путь на самом деле. Этот подход, однако, опирается на путь, изначально заканчивающийся именем файла. Если неизвестно, заканчивается ли путь в имени файла или имени папки - тогда необходимо проверить фактический путь, чтобы увидеть, существует ли файл / папка в этом месте. В этом случае ответ Дана Димитру может быть более уместным.
источник
Попробуй это:
источник
Просто и чисто. Только использует
System.IO.FileSystem
- работает как шарм:источник
file.txt
, а неfolder2
DirectoryInfo выполняет работу по удалению имени каталога
источник
Я использовал этот фрагмент кода, чтобы получить каталог для пути, когда в пути нет имени файла:
например "c: \ tmp \ test \ visual";
Вывод:
источник
источник
Также важно отметить, что при получении списка имен каталогов в цикле
DirectoryInfo
класс инициализируется один раз, поэтому допускается только первый вызов. Чтобы обойти это ограничение, убедитесь, что вы используете переменные в вашем цикле для хранения любого отдельного имени каталога.Например, этот пример кода просматривает список каталогов в любом родительском каталоге, добавляя каждое найденное имя каталога в список строкового типа:
[C #]
[VB.NET]
источник
Ниже код помогает получить только имя папки
источник
Это некрасиво, но избегает выделения:
источник