Windows でファイルを削除しても完全には削除されません。
Shift + Delete キーを押すと「このファイルを完全に削除しますか?」と聞かれますが、これは「"ごみ箱へ移動"するのではなく削除しますか?」という意味で、
ごみ箱から戻すほど簡単には戻せませんが、復元ツールなどを使用すると復元することができます。
これは「削除された」ことを示す情報を持つだけで実際には削除されていないためです。
クリックで拡大
ただ削除されただけであればフリーの復元ソフトでも戻すことができます。
しかし、HDD 上の物理的に同じ場所に別のデータで上書きをすると元のデータ(ファイル)を復元することができなくなります。
※プロが使うツールを使うと多少上書きしても戻すことができるようですが。
つまりは何度か(何度も)別のデータで上書きをすれば元のデータは戻せなくなるということです。
そして、それをしてくれるツールが Microsoft から無償で提供されている「SDelete」というツールです。
この「SDelete」を使ってファイルを完全に削除してみます。
【操作方法】
- まずは Microsoft から SDelete をダウンロードします。
SDelete 配布ページへアクセスします。
画面右側にある「SDelete のダウンロード」ボタンをクリックします。
クリックで拡大
- 保存ダイアログが表示されますので、デスクトップなどわかりやすいところに保存します。
クリックで拡大
- ダウンロードした zip ファイルを右クリックして「すべて展開」します。
クリックで拡大
- 「sdelete.exe」と「sdelete64.exe」ファイルがあります。
実行する環境に応じて使用します。
クリックで拡大
- 「sdelete.exe」はコマンドで実行するプログラムです。GUIはありません。
コマンドプロンプトを起動し、以下のように実行します。
※「sdelete.exe」を配置したパスが通っていない場合はフルパスで指定します。
使用できる引数の説明です。
-c |
開き領域の不要なデータを除去します。 |
-p 99 |
「99」は回数を指定します。
規定値は「1」ですが回数は多いほうが確実です。
|
-r |
読み取り専用の属性を削除します。
このオプションを指定しない場合、読み取り専用のファイルは削除されません。
|
-s |
サブディレクトリを再起処理します。 |
-z |
空き領域に「0」を書き込みます。 |
-nobanner |
実行時にバナー表示を行いません。 |
初めての実行時にのみ「License Agreement」が表示されます。
一度「Agree」をクリックすると次からは表示されません。
クリックで拡大
- コマンドの例
Dドライブの空き領域をすべてクリアする
「C:\temp\aaa.txt」ファイルを完全に削除する
sdelete.exe -p 3 "C:\temp\aaa.txt"
クリックで拡大
※回数は3回以上を指定するといいようです。
米国国防総省・海軍では3回、米国空軍では4回という規格が定められています。
(wikipedia「データの完全消去」より)
- ファイルを簡単に削除する方法として「sdelete」をバッチファイルで実行してみます。
以下の内容を記述したbatファイルを作成します。
削除したいファイルをドラッグすると削除することができます。
※「sdelete.exe」はパスが通っていない場合はフルパスで記述してください。
@echo off
echo %1
SET /P ANS="削除します。よろしいですか (Y/N)?"
if /i {%ANS%}=={y} (goto :yes)
if /i {%ANS%}=={yes} (goto :yes)
EXIT
:yes
sdelete.exe -p 3 %1
pause