2017-03-03 57 views
-1

我使用獲取父目錄的一些文件C#

FolderBrowserDialog fbd = new FolderBrowserDialog(); 
string[] filePaths = Directory.GetFiles(fbd.SelectedPath, "*",SearchOption.AllDirectories); 

文件路徑如下:

C:\Users\Stef\Desktop\bgdm_v2015\bgdm.dll 
C:\Users\Stef\Desktop\bgdm_v2015\something.txt 
C:\Users\Stef\Desktop\bgdm_v2015\folder2\file.txt 
C:\Users\Stef\Desktop\bgdm_v2015\folder2\file2.txt 
C:\Users\Stef\Desktop\bgdm_v2015\folder2\folder3\file.txt 

是否有任何函數來獲取父目錄的文件? 只限於

bgdm_v2015 
bgdm_v2015 
bgdm_v2015 
folder2 
folder2 
folder3 

回答

0

有多種方式來實現您的任務。

溶液1:

var result = Path.GetFileName(Path.GetDirectoryName("Enter Path here")); 

溶液2:

FileInfo info = new FileInfo("Enter Path here"); 
String getDirectoryName = info.Directory.Name; 
+0

是的,但OP想要的父目錄的只是名稱,而不是完整的路徑 –

+0

@ThomasLevesque哦好吧,我會更新我的答案 –

4

Path.GetDirectoryName返回父的完整路徑,和Path.GetFileName返回路徑的最後段(這實際上可以是一個目錄,不一定是一個文件)。所以你可以這樣做:

string parentDirectoryName = Path.GetFileName(Path.GetDirectoryName(fullPath)); 
+0

我敢肯定,這是比我的回答更有效。 – itsme86

+0

@ itsme86,可能是因爲它實際上並沒有訪問文件系統,它只是字符串操作。 –

+1

@ itsme86無論是或不是,我會說你的是一個更可讀的地獄;)不是說這一個是壞的,但... – sab669

0

你可以使用FileInfo來做到這一點。

var fileInfo = new FileInfo(fileWithPath); 
var parentName = fileInfo.Directory.Name;