2012-07-18 210 views
0

我想從可能包含或不包含文件名的路徑中提取目錄。問題是,當我試圖獲取已經是目錄的路徑的目錄名時,Path.GetDirectoryName()返回該目錄的上一級。路徑從數據庫加載,所以我無法檢查文件屬性。決定路徑是文件還是目錄(該路徑在磁盤上不存在)

Ex。 Path.GetDirectoryName( 「d:\工作\項目\源\幹線\ Project2的\ BIN \調試」)返回 「d:\工作\項目\源\幹線\ Project2的\ BIN \」

我在想一個簡單的算法,它檢查路徑是否包含「。」字符;如果是,那麼我們正在處理一個包含文件名的路徑。不幸的是,目錄名稱也可以包含「。」字符。

我知道這個問題沒有完美的解決方案,但下一個最好的東西是什麼?

已經有一個Stackoverflow question關於這個問題,但它假定文件或目錄已經存在。

+0

沒有正確的答案。文件名*不必包含'。',並且(如你所說)目錄名*可以包含'。'。 – 2012-07-18 11:48:20

回答

3

如果您的目錄或文件不存在,則無法知道它是文件還是目錄。

在您的示例D:\Work\Project\Sources\trunk\Project2\bin\Debug中,bin目錄中可能有一個名爲Debug(無擴展名)的文件。

又如:D:\Work\Project\Sources\trunk\Project2\bin\Debug\file.exe,有可能是一個名爲file.exe這是Debug子目錄...

1

爲您的情況,如果你真的案件只涉及「file.ext」的格式,然後以下正則表達式將回答你需要的東西

^(.*/)([^/]*)$ 
相關問題