ケーススタディ: ディレクトリ サイズの確認

王林
リリース: 2024-07-18 06:03:39
オリジナル
554 人が閲覧しました

再帰的メソッドは、再帰的構造の問題を解決するのに効率的です。前述の例は、再帰を使用しなくても簡単に解決できます。このセクションでは、再帰を使用しないと解決するのが難しい問題を示します。問題は、ディレクトリのサイズを見つけることです。ディレクトリのサイズは、ディレクトリ内のすべてのファイルのサイズの合計です。ディレクトリ d にはサブディレクトリが含まれる場合があります。以下の図に示すように、ディレクトリにファイル f1、f2、...、fm とサブディレクトリ d1、d2、...、dn が含まれているとします。

Image description

ディレクトリのサイズは次のように再帰的に定義できます:

サイズ(d) = サイズ(f1) + サイズ(f2) + ... + サイズ(fm) + サイズ(d1) + サイズ(d2) + ... + サイズ(dn)

File クラスは、ファイルまたはディレクトリを表し、ファイルとディレクトリのプロパティを取得するために使用できます。この問題には、File クラスの 2 つのメソッドが役立ちます。

  • length() メソッドはファイルのサイズを返します。
  • listFiles() メソッドは、ディレクトリ内の File オブジェクトの配列を返します。

以下のコードは、ユーザーにディレクトリまたはファイルの入力を促し、そのサイズを表示するプログラムを提供します。

Image description

file オブジェクトがディレクトリを表す場合 (20 行目)、ディレクトリ内の各サブ項目 (ファイルまたはサブディレクトリ) が再帰的に呼び出され、そのサイズが取得されます (23 行目)。 file オブジェクトがファイルを表す場合 (26 行目)、ファイル サイズが取得され、合計サイズに追加されます (27 行目)。

間違ったディレクトリまたは存在しないディレクトリを入力するとどうなりますか?プログラムは、それがディレクトリではないことを検出し、

file.length() (行 27) を呼び出します。これは 0 を返します。したがって、この場合、getSize メソッドは 0. を返します。

間違いを避けるために、すべてのケースをテストすることをお勧めします。たとえば、ファイル、空のディレクトリ、存在しないディレクトリ、存在しないファイルの入力についてプログラムをテストする必要があります。

以上がケーススタディ: ディレクトリ サイズの確認の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!