Получить имя папки из полного пути к файлу - PullRequest
104 голосов
/ 08 марта 2011

Как получить имя папки из полного пути приложения?

Это путь к файлу ниже,

c:\projects\root\wsdlproj\devlop\beta2\text

Здесь «текст» - это имя папки.

Как я могу получить имя этой папки по этому пути?

Ответы [ 10 ]

190 голосов
/ 08 марта 2011

См. DirectoryInfo.Name :

string dirName = new DirectoryInfo(@"c:\projects\roott\wsdlproj\devlop\beta2\text").Name;
27 голосов
/ 08 марта 2011

Я думаю, что вы хотите получить имя родительской папки из пути к файлу. Это легко получить. Один из способов - создать объект типа FileInfo и использовать его свойство Directory.

Пример:

FileInfo fInfo = new FileInfo("c:\projects\roott\wsdlproj\devlop\beta2\text\abc.txt");

String dirName = fInfo.Directory.Name;
12 голосов
/ 08 марта 2011

Попробуйте это

var myFolderName = @"c:\projects\roott\wsdlproj\devlop\beta2\text";
var result = Path.GetFileName(myFolderName);
9 голосов
/ 08 марта 2011

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

string path = @"c:\projects\roott\wsdlproj\devlop\beta2\text";
string lastDirectory = path.Split(new char[] { System.IO.Path.DirectorySeparatorChar }, StringSplitOptions.RemoveEmptyEntries).Last();
3 голосов
/ 27 июня 2018

Просто используйте Path.GetFileName

Здесь - Извлечение имени папки из полного пути к папке:

string folderName = Path.GetFileName(@"c:\projects\root\wsdlproj\devlop\beta2\text");//Return "text"

Вот еще кое-что - Извлечение имени папки из полного путифайл:

string folderName = Path.GetFileName(Path.GetDirectoryName(@"c:\projects\root\wsdlproj\devlop\beta2\text\GTA.exe"));//Return "text"
3 голосов
/ 29 августа 2014

Я подумал, что нет другого пути, кроме как зайти в файловую систему, чтобы узнать, является ли text.txt каталогом или просто файлом.Если вы хотели что-то простое, возможно, вы можете просто использовать:

s.Substring(s.LastIndexOf(@"\"));
2 голосов
/ 29 июня 2011

В этом случае файл, который вы хотите получить, хранится в переменной strpath:

string strPath = Server.MapPath(Request.ApplicationPath) + "/contents/member/" + strFileName;
1 голос
/ 03 февраля 2018

Вот альтернативный метод, который работал для меня без необходимости создания объекта DirectoryInfo. Ключевым моментом является то, что GetFileName() работает, когда в пути нет косой черты.

var name = Path.GetFileName(path.TrimEnd(Path.DirectorySeparatorChar));

Пример:

var list = Directory.EnumerateDirectories(path, "*")
        .Select(p => new
        {
            id = "id_" + p.GetHashCode().ToString("x"),
            text = Path.GetFileName(p.TrimEnd(Path.DirectorySeparatorChar)),
            icon = "fa fa-folder",
            children = true
        })
        .Distinct()
        .OrderBy(p => p.text);
1 голос
/ 08 августа 2013

Это также можно сделать так;

var directoryName = System.IO.Path.GetFileName(@"c:\projects\roott\wsdlproj\devlop\beta2\text");
0 голосов
/ 08 марта 2011
Path.GetDirectoryName(@"c:\projects\roott\wsdlproj\devlop\beta2\text");

MSDN: метод Path.GetDirectoryName

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...