Если у меня есть:
C:\Temp\Foo\бар\
( ПРИМЕЧАНИЕ: панель - это каталог)
как я могу разобрать:
бар
Если у меня есть:
C:\Temp\Foo\бар\
( ПРИМЕЧАНИЕ: панель - это каталог)
как я могу разобрать:
бар
Я понял это.
DirectoryInfo info = new DirectoryInfo(sourceDirectory_);
string currentDirectoryName = info.Name;
Try
System.IO.Path.GetFileName("C:\\temp\\foo\\bar");
Просто используйте:
string dirname = new DirectoryInfo(@"C:\temp\foo\bar\").Name;
В соответствии с MSDN это возвращает имя каталога, а не полный путь.
Надеюсь, это поможет.........
Похоже, что группа людей отозвала свои ответы, что, возможно, является позором.
Этого стоит сказать, только для того, чтобы "научить человека ловить" его качество - оно короткое, изящное и сделанное из двух отдельных вещей, которые, как только узнали, могут быть применены к другим проблемам.
string lastPiece = wholePath.Split('\\').Last();
Last
будет выдавать, если список пуст.
Я могу сразу думать о 4 способах
Самый простой способ сделать это без, создавая новый DirectoryInfo, - это использовать статический метод Path.GetFileName. Это находится в System.IO.
using System.IO;
string lastFolderName = Path.GetFileName(@"C:\Folder1\Folder2");
Переменная будет установлена в "Folder2".
Это довольно эффективный, создающий новый экземпляр класса DirectoryInfo!
string dirname = new DirectoryInfo(path).Name;
Console.WriteLine(dirname);
В Unix это называется basename, быстрый google придумал ссылку для версии С#. Я уверен, что есть другие...
если ответы выше не удовлетворяют вашим потребностям, почему бы просто не подстроить строку из последней.
string dirName = originalDirName.Substring(originalDirName.LastIndexOf("\\") + 1);
Конечно, вы должны сделать некоторую проверку, если originalDirName не заканчивается на \, и если originalDirName больше нуля и на самом деле содержит\characters.
Попробуйте это
string DirName = System.IO.Directory.GetParent(@"C:\temp\foo\bar\").Name;