[英]How to get to a file by passing relative path in java?
我試圖理解“如何通過傳遞文件或文件夾的相對路徑來獲取文件?” 。 這是一個例子:
碼:
public class somex {
public static void main {
String fileName = System.getProperty("user.dir"); <---This gives me path for the current working directory.
File file = new File(fileName + "../../xml_tutorial/sample.xlsx" );
System.out.println(file.getCanonicalPath()); <---This gives me path for the file that is residing in folder called "xml_tutorial".
}
}
>>>>
在這里,我知道文件位置,所以我能夠傳遞正確的相對路徑。 並且,設法打印文件路徑。 我刪除了“sample.xlsx”並執行了上面的代碼; 沒有失敗它給我路徑名稱,它與文件存在時(即刪除前)相同。 怎么可能? 我在這里期待EXCEPTION。 為什么不拋異常?
二,我想使用正則表達式作為文件名,例如:“../../ xml_tutorial/samp.*”。 但是這不能完成這項工作,它給了我IOException。 為什么它無法識別文件sample.xlsx? (注意:這是文件存在的時候,一百個precent確定只有一個名為“sample.xlsx”的文件)
我刪除了“sample.xlsx”並執行了上面的代碼; 沒有失敗它給我路徑名稱,它與文件存在時(即刪除前)相同。 怎么可能? 我在這里期待EXCEPTION。 為什么不拋異常?
File
不關心文件是否確實存在。 它只是解決了這條道路 。 為了獲取路徑,不需要存在該文件
/home/tjc/a/b/c/../../file.txt
...並將其轉換為規范形式
/home/tjc/a/file.txt
如果要知道該路徑上的文件是否確實存在,可以使用exists()
方法 。
關於你的第二個不相關的問題:
二,我想使用正則表達式作為文件名,例如:“../../ xml_tutorial/samp.*”。 但是這不能完成這項工作,它給了我IOException。 為什么它無法識別文件sample.xlsx?
File
文檔中沒有任何內容表明它支持通配符。 如果要進行搜索,則需要使用list(FilenameFilter)
或listFiles(FilenameFilter)
和FilenameFilter
實現,或listFiles(FileFilter)
和FileFilter
實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.