2010-10-11 214 views
7

如果我有像「C:\ My Documents \ Images \ Image1.png」文件路徑,如何獲取「Image1.png」文件的父文件夾名稱?在這種情況下,「圖像」,但這只是一個示例。我已經瀏覽了System.IO.Path,似乎沒有任何東西。也許我忽略了它,但我不知道它會在哪裏。從路徑獲取文件夾名稱

回答

9

像這樣:

Path.GetFileName(Path.GetDirectoryName(something)) 
+0

時髦的實例,我不知道你能解決這樣的問題。 +1 – AndyPerfect 2010-10-11 23:42:36

+0

太棒了,這是最直接的。感謝名單! – Stan 2010-10-12 16:05:57

2

試試這個:

var directoryFullPath = Path.GetDirectoryName(@"C:\My Documents\Images\Image1.png"); 
var directoryName = Path.GetFileName(directoryFullPath); \\ Images 
4

使用System.IO.FileInfo

string fl = "C:\My Documents\Images\Image1.png"; 
System.IO.FileInfo fi = new System.IO.FileInfo(fl); 
string owningDirectory = fi.Directory.Name; 
+0

該屬性返回目錄的完整路徑,這不是他想要的。 – SLaks 2010-10-11 23:51:25

+0

感謝您指出 - 更新。 FileInfo.Directory.Name將返回所需的結果。 – code4life 2010-10-12 00:20:37

1

下面的方法將提取所有目錄名和文件名

Dim path As String = "C:\My Documents\Images\Image1.png" 
Dim list As String() = path.Split("\") 
Console.WriteLine(list.ElementAt(list.Count - 2)) 
+0

這是不必要的緩慢。 – SLaks 2010-10-11 23:50:42

+0

好吧,標題暗示了獲取多個文件夾名稱的可能性 - 並不確定提問者是否可能想要的不僅僅是一個父目錄,那麼爲什麼不呢? – AndyPerfect 2010-10-11 23:53:48

+0

您還應該在備用路徑分隔符(/ for Windows)上進行拆分 – Joe 2010-10-12 08:24:55

4

創建

System.IO.FileInfo f1 = new FileInfo("filepath"); 
        DirectoryInfo dir=f1.Directory; 
        string dirName = dir.Name; 
        string fullDirPath = dir.FullName;