2010-12-01 4 views
3

Например у меня есть файл ISample.cs по этому пути, какМожем ли мы разделить Filepath из последней папки на C#?

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

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

"ProceduresAll\ISample.cs" 

Перед тем, что я не хочу, что я path.Here используя папку браузера для выбора папки.

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

ответ

16

Вы имеете в виду вот это?

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 ("ProceduresALL", "ISample.cs"), чтобы получить ProceduresALL \ ISample.cs (с использованием выше, чтобы получить эти строки).

-1

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

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); 
+0

Из MSDN (`GetDirectoryName`): В большинстве случаев строка, возвращаемая этим методом, состоит из всех символов пути до, но не включая последний каталог DirectorySeparatorChar или AltDirectorySeparatorChar. – Oded 2010-12-01 11:37:14

+0

Извините, что не работает – 2010-12-01 11:41:22

0

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

2
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 не содержит имя файла больше.

Смежные вопросы