ファイルやフォルダーに対して「削除」をすると、一時的に「ごみ箱」へ移動されます。
本当のデータの削除をしたい場合は、このごみ箱を「空」にする必要があります。その前であれば、データは元の場所へ復元可能です。言い換えれば、ごみ箱という「特殊なフォルダー」の中に入れているだけで、このため復元も容易となっています。
では、その「特殊なフォルダー」とやらはどこにあるのでしょうか。普段、デスクトップでしか見かけない「ごみ箱」の本体はどこにあるのでしょう。
今回は、このごみ箱の正体を暴いてみる記事です。
ごみ箱とは
Windowsにおける「ごみ箱」は、ファイル管理機能のひとつとして提供されています。
不要となったデータを「削除」すると、標準でこの「ごみ箱」へ一時的に保存されます。
削除しても単に「ごみ箱」というフォルダーへ移動させているだけですので、「元に戻す」を実行すれば削除したファイルを簡単に復元することが可能です。
「ごみ箱を空にする」機能を実行すると、ここで初めてデータはコンピューター上から完全に削除されます。「ごみ箱を空にする」を実行すると、復元は容易にできなくなりますので注意してください。
「元に戻す」を実行すると、指定したデータは削除した場所へ復元されます。復元場所を変えたい場合は、「ごみ箱」の中で復元したいデータを選択し、ドラック&ドロップにて移動・復元させることで可能になります。
また、コンピューター上から削除を実行した直後に「Ctrl」+「Z」キーを同時押しすることで、動作をひとつ戻して削除をキャンセル、データをすぐに復元させることができます。
ごみ箱の本体を表示させてみる
Windowsの「ごみ箱」機能ですが、特殊なフォルダーとなっているため、本体を表示させるためにはいくつか設定を変更する必要があります。
システム関連の設定を変更しますので、用が済んだら後ほど設定を戻しましょう。
設定
Windowsのごみ箱は「$Recycle.Bin」という特殊なフォルダーが本体になります。
※Windows XPでは「Recycled」という名前ですが、今回の記事ではWindows Visa以降、具体的な操作は「Windows 11」で解説します。
「$Recycle.Bin」というフォルダーは、システムによって厳重に保護されており、通常の権限では非表示となっています。
そこで、下記の操作をして実際に見えるようにしてみます。OSは「Windows 11」で実施しています。
エクスプローラーを開き、左上のメニューから三点マーク「・・・」を選択、メニューから「オプション」を選択します。
もしエクスプローラーがよくわからない場合は、何でも良いのでフォルダーやPCなどを開いてください。開いた時に表示される画面が「エクスプローラー」になります。
「フォルダー オプション」が開いたら、「表示」タブを選び「詳細設定」から以下の2の設定を行います。
●「隠しファイル、隠しフォルダー、および隠しドライブを表示する」にチェックする。
●「保護されたオペレーティング システム ファイルを表示しない」のチェックを外す。
「保護されたオペレーティング システム ファイルを表示しない」のチェックを外そうとすると、警告が表示されます。今回は「はい」で許可しますが、大事な設定になりますので後で元に戻しておきましょう。
実際に確認してみる
以上の設定をしたら、Cドライブに行ってみましょう。
すると、隠しフォルダーとして「$Recycle.Bin」が見えるようになります。早速アクセスしてみましょう。
「ごみ箱」というフォルダーがあることが分かりました。このアイコンをクリックすると、いつものごみ箱へアクセスできます。
この「$Recycle.Bin」というフォルダーですが、Cドライブだけにあるわけではありません。
「$Recycle.Bin」は、各ドライブすべてに生成されます。同じくDドライブやEドライブなどにもアクセスしてみてください。
このように、「$Recycle.Bin」というフォルダーは各ドライブに自動生成されます。
データに対して削除を実行すると、削除したデータが保存されているドライブにある「$Recycle.Bin」へ移動されます。例えば、Dドライブにあるデータを削除すると、Dドライブにある「$Recycle.Bin」へ移動されます。
削除やごみ箱からの復元が時間もかからず可能になっているのは、このようにドライブ間の移動がなく、データの属性を変更するだけで済むためです。
ごみ箱は仮想的なフォルダー
ごみ箱というフォルダーは、実は仮想的なものです。
各ドライブ内に保存されている「$Recycle.Bin」の中身を一括で読み込み、まとめあげているのがデスクトップ上にある「ごみ箱」という存在になります。
それぞれのドライブの「$Recycle.Bin」に削除されたデータが保存されています。OSが提供する「ごみ箱」という機能は、それぞれの「$Recycle.Bin」をまとめあげる役割を持っています。ごみ箱という実体のあるフォルダーはなく、あくまで仮想的なものなのです。
この機能によって、どのドライブで削除してもデスクトップ上の「ごみ箱」で削除したデータを一括して管理することができるようになっています。
USBフラッシュメモリーやSDカードには「$Recycle.Bin」が生成されない
USBフラッシュメモリーなどの外部記憶デバイスは、その中で削除を実行しようとるすと「完全に削除しますか」と聞かれます。ごみ箱には移動できず、完全削除のみ可能となっています。
これは、USBフラッシュメモリーなどの中には「$Recycle.Bin」が自動生成されないからです。
USBフラッシュメモリーなどに入っているデータの削除には十分気をつけてください。
「S-1-~」というフォルダーは何?
他のユーザーが利用しているごみ箱データです。通常権限ではアクセスすらできないフォルダーです。
やりようによってはもちろん確認することはできますが、アクセス権を奪取するともとの状態に戻せなかったりするのであまり無闇に弄らないよう注意してください。
本当に各ドライブの「$Recycle.Bin」に入るか実験
本当に削除したデータがドライブごとに保存されているのかを確認してみます。
まず、Dドライブにある「テスト.zip」を作成します。容量は大体76MBくらいです。
これを「削除」します。これでDドライブ内にある「$Recycle.Bin」へ移動されたはずです。
「ごみ箱」という仮想的なフォルダーには、CドライブでもDドライブでもすべてまとめて表示されているため、どちらでも「テスト.zip」が表示されます。
それでは確認しようがないので、Dドライブにあるごみ箱($Recycle.Bin内の「ごみ箱」)を「コピー」します。
それを「貼り付け」します。その際、「desktop.ini」の上書きを確認されます。上書きすると面倒なことになることもあるので、ここは「スキップ」を選びましょう。
これでフォルダーの認識を「ごみ箱」から「普通のフォルダー」へ変えさせることができます。
「普通のフォルダー」として認識されていますので、このままアクセスしてみます。
すると、名前が変わっていますが先ほど削除されたzipファイルがそのまま保存されていることが確認できます。
名前が変わっている(リネーム)、かつ2つに分かれているのは、削除した日時やファイル構成などを記録したデータ(バイナリデータ)を用意していることと、同じファイル名であってもそれぞれを分けて判別できるようにしているためです。
Windows Vista以降のOSは、「$R~で始まるランダムなファイル名にリネーム」されて保存、それと対応するように「$I~ で始まるバイナリファイル」を作成して管理しています。
同じくアクセスしてみると、フォルダー構成の設定ファイルである「desktop.ini」しかなく、削除したzipファイルは確認できません。
これで削除したデータは、そのデータのあったドライブ内にある「$Recycle.Bin」へ保存されることが分かりました。
ごみ箱の設定
「ごみ箱」には、保存容量の上限などを設定させることができます。
「ごみ箱」を右クリックして「プロパティ」を選択します。すると「ごみ箱のプロパティ」が開きます。ここで、「$Recycle.Bin」が生成されているドライブと空き容量が確認できます。「カスタムサイズ」を調整することでごみ箱の上限を決めることができます。
因みに、ごみ箱へ移動させずその場でデータの完全削除を実行したい場合は、「ごみ箱へにファイルを移動しないで、削除と同時にファイルを消去する」にチェックをいれます。
まとめ
いつも利用している「ごみ箱」ですが、どのような仕組みになっているか簡単に確認してみました。
「ごみ箱」という実体のあるフォルダー(正確に言えばディレクトリ)はなく、あくまで仮想的なOSの”機能”のひとつであることがわかりました。
「ごみ箱」は各ドライブに自動生成される「$Recycle.Bin」の中身をまとめる役割を持ち、不要なデータを管理しています。ただし、USBフラッシュメモリーには「$Recycle.Bin」が生成されないので「ごみ箱」では管理できず、完全削除のみ可能となっています。
各ドライブに作成されますので、削除によるドライブ間のデータ移動がなく、このため削除も復元も時間がかからず完了させることができるようになっています。
豆知識的なものであまり実践的なものではないですが、何かの為になれば幸いです。
コメント
コメント欄を開く
コメント一覧 (5件)
1 エクスプローラーを開き、メニューから「表示」→「オプション」を選択します
ごみ箱のことで質問する人にエクスプローラーがどこにあるかわかるはずがない。
コメントありがとうございます。
この記事を書いていたときの私が予想していた読者ですが、manukeさんとは逆でこの質問ができる人は
パソコンのことを少し知っている中級者くらいの方々だと思っていました。操作内容もエクスプローラーという言葉を知らない
方からみれば高度なことをやっているので、記事の長さも考えてあえて説明することはしていませんでした。
ただ、折角ご指摘していただいたので一言ではありますが少し解説文を挿入してみました。
また何かお気付きの箇所がございましたらコメント下さい。
$Recycle.Binがフォルダーなら同じ名前をもつファイルを同時に格納できる仕組みを説明して欲しい。
コメントありがとうございます。
Windowにおいてはフォルダーという言葉はかなり広い意味を持っているようで、
実体がなくても仮想的な入れ物というだけでもフォルダーという言い方をすることができます。
必ず実体がある「ディレクトリ」とはまた少し違います。
フォルダーという言い方をしていますが、特にWindowsシステムの一部である「ゴミ箱」は
かなり特殊なものであるという認識も必要です。
ゴミ箱内には確かに同じ名前のデータを入れることができます。
ただ、この「ゴミ箱」というフォルダーは仮想的なもので実体はありません。
一番簡単な説明ですが、要は「ファイル名だけを一覧表示しているだけ」と
思っていただければ大体合っています。
Excelでも、同じブック内には同じ名前のセルがあっても大丈夫ですよね。
「Excelでファイル名の一覧を作って表示しています」という状態です。
これが一番簡単な説明になります。
もっと詳しくとなると少し難しい話になりますが・・・
まず削除を行うと、そのドライブ内のRecyclerフォルダに移動されますが、
その際にファイル(フォルダ)の名前は一度リネームされます。
同じ名前のファイルを削除してもリネーム後の名前は違うものが割り当てられるので、
個別に管理できるようになります。
そして、リネーム前のファイルと関連付けできるよう、バイナリデータにそれら情報を格納します。
Vista以降は「削除したデータは$R~で始まるランダムなファイル名にリネーム」され、
それと対応するように「$I~ で始まるバイナリファイル」を同じところに生成します。
因みに、拡張子はそのままです。
この記事でも、削除したファイルが2つにわかれていますよね。
本記事の「実験」の「手順3」の画像をみていただければわかりますが、
下が削除した元のデータ、上がバイナリデータです。
このバイナリデータには元のファイルの名前の他に、削除した日時やファイルパスなどが
記録されています。なので、このバイナリデータを元にすれば復元が可能になるわけです。
一連の流れですが、
・データを削除すると、同ドライブ内のRecyclerに移動される。
・ファイル名が重複しないように名前が変更される。
・変更前の状態に戻せるよう、バイナリデータも一緒に作る。
・復元の際は、バイナリデータを参照して復元する。
という感じです。ゴミ箱という仮想フォルダ上では同じ名前のものが
入っているように見えますが、「実体」は重複しない別の名前が利用されています。
なので同名のファイル名のものを入れることができます。
バイナリデータなどを使えばファイル名の一覧を表示できます。それがゴミ箱です。
ゴミ箱フォルダーなんて言っていますが、ゴミ箱という機能を提供している「プログラム」
のような感じです。Windowsのファイルシステムなどと密接に連携をとって動いています。
日本語ではMicrosoftのサイトに「古いOS」での動作は記載があります。
◯ごみ箱がファイルを格納する方法
https://support.microsoft.com/ja-jp/kb/136517#appliesto
Vista以降は命名規則などが変わっています。INFOファイルもありません。
Vista以降のゴミ箱の動作はMSの開発者向け質問フォーラムに質問があります。
◯Windows7 で ゴミ箱へ移動したファイルの情報を格納しているファイルについて
https://social.msdn.microsoft.com/Forums/windows/ja-JP/1717f21d-4007-4e1b-9b97-aa81b9dc1902/windows7-?forum=windowsgeneraldevelopmentissuesja
大体この2つのサイトでゴミ箱の動作はおおまかに分かるかと思います。
参考になりましたら幸いです。
丁寧な回答ありがとうございます。
そういう仕組みだったんですね。
DOS の頃はファイルの仮想化(con や prn など)でしたが、
いってみればフォルダーの仮想化のようなものなんですね。
ん?ちょっと違うか。
重ねてになりますが、ありがとうございます。