Windowsで容量を食っている大きなフォルダをローカルだけで調べる方法

Windows を使っていると、ある日「Cドライブの空き容量がほとんどない」という状態に気づくことがあります。困るのは、どこで容量を使っているのかがすぐには分からないことです。心当たりのある大きなファイルを消してもほとんど減らない、ということもよくあります。

この記事では、C ドライブなどの空き容量が足りないときに、どのフォルダ・ファイルが容量を使っているのかをフォルダ単位で調べる手順をまとめます。まず Windows の標準機能でできることを整理し、次にフォルダ単位で追うときの方法、そして大きい項目を見つけた後に「消していいか」を判断するときのチェックポイントを扱います。最後に、この用途のために自分用に作った disk-insight というツール(Windows 向け・ローカルのみで動作)も紹介しますが、ツールを使わなくても記事の前半だけで一通り確認できるようにしています。

目次

どのフォルダが容量を使っているのか分からない

「空き容量が足りない」と分かっても、実際に容量を占めているものは次のように多岐にわたります。

  • 自分で作ったデータ(動画、写真、アーカイブなど)
  • アプリケーションのキャッシュやログ
  • 仮想マシンのディスクイメージ、コンテナのデータ
  • ゲームのインストールフォルダ
  • ビルド成果物(node_modulestargetbuild など)
  • クラウド同期フォルダのローカルコピー
  • Windows Update やシステムの一時ファイル

これらは置き場所がバラバラで、サイズも実際に開いて見るまで分かりません。「大きいはず」と思っていたものが小さく、意識していなかったフォルダが数十 GB を占めている、というのはよくあるパターンです。

エクスプローラーだけでは把握しにくい理由

エクスプローラーでもフォルダのサイズは確認できますが、次のような手間があります。

  • フォルダを右クリックして「プロパティ」を開き、サイズ計算が終わるのを待つ、という操作をフォルダごとに繰り返す必要がある
  • 一覧の「サイズ」列にはフォルダのサイズが表示されない(ファイルのみ)
  • どのサブフォルダが大きいのかを、階層をたどりながら手作業で比較することになる

ドライブ全体で「どこが大きいか」を上から見ていきたい場合、この方法は時間がかかります。フォルダ単位で合計サイズを一覧し、大きい順にたどるようにすると、原因にたどり着くのが早くなります。

調べる前に決めておくこと

ツールを使う前に、次の点を決めておくと選びやすくなります。

  • 読み取りだけで十分か、削除まで行いたいか:まず「何が大きいか」を把握したいだけなら、ファイルを変更しない読み取り専用の使い方で足ります。
  • どこまでローカルで完結させたいか:後述しますが、ディスク使用量の調査ではファイル名やパスが処理対象になります。これらをネットワークに送りたくない場合は、動作要件を先に確認しておきます。
  • 管理者権限を使ってよい環境か:スキャン方式によっては管理者権限があると読み取れる範囲が広がります。会社の PC など、組織のポリシーがある環境では、その範囲内で行います。

ローカルで完結させたい場合に確認する点

ディスク使用量を調べるツールは、ファイルの中身を開かなくても、ファイル名・パス・サイズ・フォルダ構成を読み取ります。パスにはプロジェクト名、顧客名、利用アプリ、バックアップの場所など、それ自体が情報になるものが含まれることがあります。ローカルで完結させたい場合は、ツールの配布ページやドキュメントで次を確認します。

  • アカウント登録やクラウドサービスなしでスキャンできるか
  • 通常利用時にネットワーク通信を行うか(テレメトリ、解析、クラッシュレポート、スキャン結果の送信を含む)
  • サーバーに接続する自動アップデータを持つか
  • キャッシュ・ブックマーク・ログ・エクスポート結果をどこに保存するか
  • ソースコードや、動作の裏付けとなるセキュリティ関連の説明を確認できるか

「オフラインで動く」という記述は参考になりますが、「ネットワーク通信を行わない設計である」と明記されているかどうかは別に確認したほうが確実です。

まず標準機能で確認する

ストレージ設定でおおまかな内訳を見る

設定 → システム → ストレージ を開くと、どのドライブが逼っているか、そして「アプリ」「一時ファイル」「ドキュメント」などのカテゴリ別のおおまかな内訳が確認できます。既知の一時ファイルを消したいだけなら、この画面の項目で足りることもあります。

なお、Windows の「ストレージセンサー」は一時ファイルを自動で削除する機能で、調査と自動削除は別の操作です。まずは何が大きいかを把握してから、削除は個別に判断することをおすすめします。

フォルダ単位で追いたいとき

カテゴリ別の内訳だけでは足りず、「このドライブのどのフォルダが大きいか」を階層でたどりたい場合は、フォルダ単位でサイズを集計して一覧できるツールを使います。この種のツールとしては WizTree、WinDirStat、TreeSize などが広く知られています。用途や好みに合うものを選んでください。

ツールを選ぶときは、前述の「ローカルで完結させたい場合に確認する点」に加えて、対応する Windows のバージョン、対象とするファイルシステム、管理者権限が必須か任意か、そして既定で読み取り専用か、自動で削除まで行うかを確認しておくと安全です。ダウンロードは、可能なら配布元の公式ページから行います。

NTFS ボリュームでは、ディレクトリを 1 つずつ API でたどる代わりに、MFT(マスターファイルテーブル)を直接読む方式のツールもあります。MFT には NTFS ボリューム上のすべてのファイルのエントリが含まれるため、この方式は走査が速くなる傂向があります。一方で、MFT への直接アクセスには管理者権限が必要になることがあります。管理者権限の要求は、内容を理解したうえで許可する操作として扱ってください。

大きい項目を見つけた後に確認すること

大きいフォルダやファイルが見つかっても、「大きい」ことは「不要」を意味しません。削除する前に、次を確認します。

  • 個人ファイル:復元できるバックアップがあるか。
  • アプリケーションのデータ:そのアプリ自身のアンインストール機能やキャッシュ削除機能を使えないか
  • ビルド成果物:再生成できるか。唯一の成果物ではないか。
  • クラウド同期フォルダ:削除が他の端末に同期されないか。
  • 仮想マシン・データベース・コンテナ・ゲームライブラリ:所有するアプリを停止し、そのアプリの管理機能で扱えないか。
  • Windows やセキュリティソフトのフォルダ:名前に見覚えがないという理由だけで不要と判断しない。

可能なら、いきなり完全削除せず、戻せる操作を選びます。ごみ箱への移動は完全削除ではありませんが、ごみ箱を空にするまでは容量は解放されません。移動した項目を見直してから、最終的に空にします。

自作のツール(disk-insight)を使う場合

何をするツールか

disk-insight は、上記の用途のために自分用に作った Windows 向けの disk usage viewer です。GitHub で MIT ライセンスで公開しています。

  • NTFS の MFT を直接読んでスキャンし、結果をツリー表示します(フォルダを開くと遅延読み込みで展開)。
  • 各行に占有バーが表示され、相対的な大きさが一目で分かります。
  • 表示の絞り込みとして All / Large review / Reviewable areas / Caution areas の切り替えがあります。ただし後者 3 つはパスのパターンに基づく分類であり、中身を解析した結果ではありません。手動レビューの出発点であって、「削除してよい」という判断ではありません。
  • ブックマーク(セッションをまたいで保持)、レビューリスト(そのセッションのみの一時リスト、パスの一括コピー)、エクスプローラー連携(エクスプローラーで表示 / ファイルを選択 / プロパティを表示)などがあります。
  • README とセキュリティ概要には、ネットワーク通信なし・テレメトリなし・自動アップデータなしの設計であること、アプリが管理するデータ(スキャンキャッシュとブックマーク)は %LOCALAPPDATA%\disk-insight\ にのみ書き込むことが記載されています。これは現時点で文書化・コードレビュー済みの方針であり、あらゆる環境での永続的な保証という意味ではありません。

使い方

  1. v1.0.0 の GitHub リリース を開きます。
  2. Assets から disk-insight-v1.0.0-windows-x64.zip をダウンロードします。
  3. ZIP を展開し、disk-insight-ui.exe を実行します。完全な MFT スキャンには管理者として実行します(管理者でなくても起動はできますが、一部のスキャン操作が制限されることがあります)。

インストーラーはありません。展開したフォルダを削除すればアンインストールでき、アプリのデータも消す場合は %LOCALAPPDATA%\disk-insight\ を削除します。実行ファイルは署名されていないため、初回実行時に SmartScreen の警告が出ることがあります。リリースノートに記載の SHA-256 と照合してから実行してください。組織のセキュリティ制御を回避してまで実行しないでください。

disk-insight の制約と安全性

  • 安全モデル:起動時は必ず Normal Mode で、破壊的なファイル操作は表示されません。Advanced Mode は明示的に有効化するその場限りのモードで、アプリを閉じると OFF に戻ります。Advanced Mode で解放されるのは「ごみ箱へ移動」だけで、実行のたびにパス・サイズ・警告を表示して項目ごとに確認を求めます。削除・リネーム・切り取り・取り付けは実装されていません。自動的なクリーンアップも行いません。
  • 対象環境:Windows 10 以降、x64。NTFS が主対象で、他のファイルシステムは現在の focus ではなく、動作が制限される、またはサポートされない場合があります。
  • 検証範囲:単独の開発者が Windows 10/11・NTFS 環境で開発・使用しているもので、他のハードウェア、表示スケーリング、ロケール、管理された企業向け構成での動作は体系的にはテストされていません。v1.0.0 は初の安定版ですが、ここでの「安定」は「文書化された動作を今後も維持する意図がある」という意味であり、署名済み・広範な認証済み・全環境で検証済みという意味ではありません。
  • サイズの数値:割り当てベースの推定値で、エクスプローラーの「サイズ」表示や他ツールと差が出ることがあります。
  • ダークモードは現在ありません。CLI(disk-insight.exe、JSON 出力)はソースからビルドするもので、リリースの ZIP には含まれません。

会社の PC で使う場合は、署名なしのローカルツールに関する組織のポリシーに従い、Normal Mode のまま使ってください。

まとめ

  • 空き容量が足りないときは、まず 設定 → システム → ストレージ でおおまかな内訳
  • フォルダ単位で大きい場所をたどって、フォルダサイズを集計して一覧できるツールを使う。ローカルで完結させたいなら、ネットワーク通信・テレメトリ・自動アップデータの有無を先に確認する。
  • 大きい項目が見つかっても「大きい=不要」ではない。バックアップ・所有アプリ・同期の有無を確認し、戻せる操作から行う。

同じ用途で、Windows 向けに disk-insight を自分用に作って GitHub で公開しています。ローカルのみで動作し(README にネットワーク通信なし・テレメトリなしと記載)、MIT ライセンスで無料で使えます。まず リポジトリのソースとスクリーンショット を見て、v1.0.0(Windows x64)のリリース の既知の制約が用途に合うか確認したうえで、必要ならダウンロードしてください。

参考

プログラム開発

Posted by iwadjp