我可以有路徑以下文件名:獲取路徑/ FILNAME的路徑,但該文件沒有擴展
/somepath /文件
該文件沒有擴展名,所以在Java中的getPath結束返回整個路徑和文件名。假設路徑/文件名中的最後一項始終是一個文件名,我該如何提取路徑?最簡單的解決方案就是查找最後一個正斜槓。但有沒有一個內置的API來獲取它?
編輯:錯誤。我的意思是我如何提取路徑(而不是文件名)。抱歉。
我可以有路徑以下文件名:獲取路徑/ FILNAME的路徑,但該文件沒有擴展
/somepath /文件
該文件沒有擴展名,所以在Java中的getPath結束返回整個路徑和文件名。假設路徑/文件名中的最後一項始終是一個文件名,我該如何提取路徑?最簡單的解決方案就是查找最後一個正斜槓。但有沒有一個內置的API來獲取它?
編輯:錯誤。我的意思是我如何提取路徑(而不是文件名)。抱歉。
使用lastIndexOf()
和substring()
System.out.println(fileObj.getPath().substring(0, f.getPath().lastIndexOf("/"));
編輯:剛剛發現的getParent()
存在,它會直接給你文件的那個目錄。
System.out.println(fileObj.getParent());
File file = new File("/somepath/file");
file.getName();
編輯:如果你想嘗試的路徑這
file.getCanonicalPath();
你也可以使用文件對象的屬性,以提取各種文件類型相關的數據。
這是獲取名稱的更好方法。 +1 – Achrome
對不起,我的意思是走的路。 – AndroidDev
使用的getParent()
這會給你 「/ somepath」 回來。
使用Java SE 7:
Path path = Paths.get("/somepath/file");
String fileName = path.getFileName().toString();
Path parentPath = path.getParent();
編輯:
注意:根據你在做什麼,考慮不進行硬編碼的根目錄下(這裏: 「/」)和分隔符(在這裏:「/」)並確保代碼與平臺無關。
對不起,我的意思是找到路徑。 – AndroidDev
我編輯了我的答案,以獲得路徑。 – Achrome