Можем ли мы отделить Filepath от последней папки в C #? - PullRequest
3 голосов
/ 01 декабря 2010

Например, у меня есть файл ISample.cs по этому пути, например

"D:\TEST_SOURCE\CV\SOURCE CODE\ARMY.Data\ProceduresALL\ISample.cs"

Здесь я хочу путь к файлу с

"ProceduresAll\ISample.cs"

До этого я не хочу этого пути. Здесь я использую браузер папок для выбора папки.

Пожалуйста, помогите мне в этом.

Ответы [ 4 ]

18 голосов
/ 01 декабря 2010

Вы имеете в виду, что это так?

string path = @"D:\TEST_SOURCE\CV\SOURCE CODE\ARMY.Data\ProceduresALL\ISample.cs";

//ISample.cs
Path.GetFileName(path);

//D:\TEST_SOURCE\CV\SOURCE CODE\ARMY.Data\ProceduresALL
Path.GetDirectoryName(path);

//ProceduresALL
Path.GetDirectoryName(path).Split(Path.DirectorySeparatorChar).Last();

Используйте Path.Combine ("ProgramsuresALL", "ISample.cs"), чтобы получить ProgramsuresALL \ ISample.cs (используя вышеизложенное, чтобы получить эти строки).

2 голосов
/ 01 декабря 2010
string fullPath = @"D:\TEST_SOURCE\CV\SOURCE CODE\ARMY.Data\ProceduresALL\ISample.cs";
string fileName = Path.GetFileName(fullPath);
string filePath = Path.GetDirectoryName(fullPath);
string shortPath = Path.Combine(Path.GetFileName(filePath), fileName)

Path.GetFileName(filePath) получает часть имени файла, которая фактически является последней частью каталога, так как filePath больше не содержит имени файла.

0 голосов
/ 01 декабря 2010

Вы можете использовать строковую функцию Split для разделения на \ или использовать функции LastIndexOf и Substring для разделения путей.

0 голосов
/ 01 декабря 2010

Это должно работать:

var path = "D:\TEST_SOURCE\CV\SOURCE CODE\ARMY.Data\ProceduresALL\ISample.cs";
var fileName = System.IO.Path.GetFileName(path);
var directoryName = System.IO.Path.GetDirectoryName(path);
System.IO.Path.Combine(directoryName,fileName);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...