2013-05-04 80 views
0

給定絕對路徑作爲變量字符串路徑名,如何使用Java類文件執行以下操作?據我所知,答案在括號中,請確認。給定一個路徑名,如何判斷對象是使用Java File API的目錄還是文件?

  1. 獲取文件/目錄的大小? (我不確定)

  2. 測試絕對路徑是否會導致存在的東西? (File.exists(pathname),如果它存在則返回一個布爾值true,否則布爾值爲false)

  3. 看看這是不是這個文件或目錄? (File.isFile(pathname),如果路徑名導致文件,則返回一個布爾值true,否則返回false。file.isDirectory(pathname),如果路徑名導向目錄,則返回布爾值true,否則返回false)

  4. 查看修改的最後日期? (File.lastModified(路徑),它返回我已經有轉換爲特定的日期

一個相關但不同的問題的方法很長的數字:有沒有東西是一個「文件」,像.doc,.jpeg,.mpeg,.mp3,.xml,。*會使isFile和isDirectory測試失敗嗎?如果是這樣,如何區分空文件夾和文件夾,同時使isFile和isDirectory測試?我在問,因爲在File類文檔中,它爲isFile聲明瞭以下內容:測試此抽象路徑名錶示的文件是否是普通文件。如果文件不是目錄,則它是正常的,並且此外還滿足其他與系統相關的標準。由Java應用程序創建的任何非目錄文件都將保證爲普通文件。

+0

對於文件或目錄請檢查此http://www.java-examples.com/determine-file-or-目錄 – exexzian 2013-05-04 05:59:38

+0

「系統相關標準」是指像UNIX的套接字,命名管道或特殊文件(的/ dev/null的)。表示寫在磁盤上的數據的任何文件基本上都是普通文件。 – 2013-05-04 06:02:30

回答

3
File f = new File(path); 
// Get size of file (not a directory though) 
f.length(); 
// Check if file exists 
f.exists(); 
// Check if file is directory 
f.isDirectory(); 
// Check if file is file 
f.isFile(); 
// Last modified date 
f.lastModified(); 

參考:JavaDoc for java.io.File

如果你想有一個目錄的大小,你必須在你遍歷你要計算的尺寸目錄將這些方法結合起來,或者你可以使用第三像FileUtilsApache Commons IO它有一個sizeOf方法,顯然也處理目錄的大小。如果存在

0
  • 測試:file.exists()
  • 測試,如果一個正常的文件:file.isFike()
  • 東西我們既不是 「文件」 不是一個目錄:一個符號鏈接
0

有什麼那是一個「文件」,就像.doc,.jpeg,.mpeg,.mp3,.xml,。*那樣會使isFile和isDirectory測試都失敗?

不。那些都是普通文件。如果它是一個文件,它將通過isFile測試。

不是「普通文件」或目錄的東西就是設備文件和命名管道文件。 java.io.File無法準確區分這些...或符號鏈接。

如果您希望能夠完成特定於操作系統的任務,請參閱Java 7的java.nio.file包,特別是Files類。