Как получить имя директории по полному пути?
От: lesovick Россия  
Дата: 18.01.11 09:51
Оценка:
Есть строка пути: "D:\MyApplications\Application1\App1.exe".
Хочется получить из неё строку "Application1" — т.е. имя директории приложения. Но не полную ("D:\MyApplications\Application1"), а именно такую, укороченную. Что-то я пока не могу додуматься, это можно сделать в один приём какой-нибудь стандартной функцией .Net (классы Path, Directory, File, и др.?) или своими руками только можно отредактировать так строку?
Re: Как получить имя директории по полному пути?
От: __gas  
Дата: 18.01.11 10:01
Оценка: -3
Здравствуйте, lesovick, Вы писали:

L>Есть строка пути: "D:\MyApplications\Application1\App1.exe".


к примеру так:

var dn = Path.GetDirectoryName(fileName);
dn = dn.Substring(dn.LastIndexOf('\\'));
Как известно, 90% людей верят утверждениям, начинающимся со слов «как известно».
Re: Как получить имя директории по полному пути?
От: 1stein Украина  
Дата: 18.01.11 10:02
Оценка: 1 (1) +2
Здравствуйте, lesovick, Вы писали:

Console.WriteLine(new FileInfo(@"D:\MyApplications\Application1\App1.exe").Directory.Name);
Will code C# for food
Re: Как получить имя директории по полному пути?
От: lesovick Россия  
Дата: 18.01.11 10:06
Оценка:
Разобрался. Имя директории можно получить, например, так:

Directory.GetParent(executeProcessFileName).Name

Прощу прощение за беспокойство...
Re[2]: Как получить имя директории по полному пути?
От: Kalina9001  
Дата: 18.01.11 10:48
Оценка:
Здравствуйте, __gas, Вы писали:

__>к примеру так:


__>
__>var dn = Path.GetDirectoryName(fileName);
__>dn = dn.Substring(dn.LastIndexOf('\\'));
__>

var fileName = @"D:\MyApplications\Application1\..\App1.exe";
var dn = Path.GetDirectoryName(fileName);
dn = dn.Substring(dn.LastIndexOf('\\'));


Ыыыы!
... << RSDN@Home 1.2.0 alpha 4 rev. 1478>>
Re[3]: Как получить имя директории по полному пути?
От: __gas  
Дата: 18.01.11 10:58
Оценка: -1
Здравствуйте, Kalina9001, Вы писали:

K>
K>var fileName = @"D:\MyApplications\Application1\..\App1.exe";
K>var dn = Path.GetDirectoryName(fileName);
K>dn = dn.Substring(dn.LastIndexOf('\\'));
K>


K>Ыыыы!


Ну, вроде "разумному достаточно намека".
Но раз так, то вот:

var dn = System.IO.Path.GetDirectoryName(System.IO.Path.GetFullPath(fileName));
dn = dn.Substring(dn.LastIndexOf('\\'));


Это я все к тому, что здесь достаточен простой синтаксический разбор
Как известно, 90% людей верят утверждениям, начинающимся со слов «как известно».
Re[4]: Как получить имя директории по полному пути?
От: Kalina9001  
Дата: 18.01.11 11:26
Оценка:
Здравствуйте, __gas, Вы писали:



__>
__>var dn = System.IO.Path.GetDirectoryName(System.IO.Path.GetFullPath(fileName));
__>dn = dn.Substring(dn.LastIndexOf('\\'));
__>


__>Это я все к тому, что здесь достаточен простой синтаксический разбор


var fileName = @"D:/MyApplications/Application1/App1.exe";

'\\' — Вот это не правильно
... << RSDN@Home 1.2.0 alpha 4 rev. 1478>>
Re[4]: Как получить имя директории по полному пути?
От: _Raz_  
Дата: 18.01.11 11:54
Оценка:
Здравствуйте, __gas, Вы писали:

__>Это я все к тому, что здесь достаточен простой синтаксический разбор


Если пути физически нет и нужен синтаксические разбор, то
    var segments = new Uri(@"z:/dir\di2/dir3\file.ext").Segments;
    var result = segments[segments.Length - 2].TrimEnd('/');
... << RSDN@Home 1.2.0 alpha 4 rev. 1446>>
Re: Как получить имя директории по полному пути?
От: Nikolay_P_I  
Дата: 18.01.11 14:04
Оценка:
Здравствуйте, lesovick, Вы писали:

L>Есть строка пути: "D:\MyApplications\Application1\App1.exe".

L>Хочется получить из неё строку "Application1" — т.е. имя директории приложения. Но не полную

Path.GetDirectoryName("D:\MyApplications\Application1\App1.exe") -> "D:\MyApplications\Application1"

Path.GetFileName("D:\MyApplications\Application1") -> "Application1"

И всё. Только на случай "D:\App1.exe" затычку сделать.
Re[5]: Как получить имя директории по полному пути?
От: __gas  
Дата: 18.01.11 14:08
Оценка:
Здравствуйте, Kalina9001, Вы писали:

K>var fileName = @"D:/MyApplications/Application1/App1.exe";


K>'\\' — Вот это не правильно


Ну, во-первых есть LastIndexOfAny — там можно перечислить любые сепараторы
Во-вторых оба ваших примера некорректны, т.к. есть такое понятие, как fully qualified path. Все пути вначале по-хорошему нужно приводить именно к означенному виду
Как известно, 90% людей верят утверждениям, начинающимся со слов «как известно».
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.