首頁  >  文章  >  Java  >  案例研究:查找目錄大小

案例研究:查找目錄大小

王林
王林原創
2024-07-18 06:03:39556瀏覽

遞歸方法對於解決遞歸結構的問題非常有效。無需使用遞歸即可輕鬆解決前面的範例。本節提出了一個不使用遞迴很難解決的問題。問題是找到目錄的大小。目錄的大小是目錄中所有檔案大小的總和。目錄 d 可以包含子目錄。假設一個目錄包含檔案 f1, f2, ... , fm 和子目錄 d1, d2, ... , dn ,如下圖所示。

Image description

目錄的大小可以遞歸定義,如下:

尺寸(d) = 尺寸(f1) + 尺寸(f2) + ... + 尺寸(fm) + 尺寸(d1) + 尺寸(d2) + ... + 尺寸(dn)

File 類別可用來表示檔案或目錄並取得檔案和目錄的屬性。 File 類別中的兩個方法對於解決此問題很有用:

  • length() 方法傳回檔案的大小。
  • listFiles() 方法傳回目錄下 File 物件的陣列。

下面的程式碼給了一個程序,提示使用者輸入目錄或檔案並顯示其大小。

Image description

如果 file 物件表示目錄(第 20 行),則遞歸呼叫目錄中的每個子項(檔案或子目錄)來取得其大小(第 23 行)。如果 file 物件代表一個檔案(第 26 行),則取得檔案大小並將其加到總大小(第 27 行)。

如果輸入不正確或不存在的目錄會發生什麼?程式將偵測到它不是目錄並呼叫 file.length() (第 27 行),它會傳回 0。因此,在這種情況下, getSize 方法將傳回 0.

為了避免錯誤,測試所有案例是一個很好的做法。例如,您應該測試程式的檔案輸入、空目錄、不存在的目錄和不存在的檔案。

以上是案例研究:查找目錄大小的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:場景和地圖下一篇:場景和地圖