t-hom’s diary

主にVBAネタを扱っているブログ…とも言えなくなってきたこの頃。

ファイルの移動で、コピーより切り取りの方が速い理由

今回は普通のWindowsのお話。

デスクトップのファイルを、マイドキュメントやCドライブに移動させるとき、通常は切り取り・貼り付けかドラッグ&ドロップを行う。
一方、コピー・貼り付けという手段もある。

見た目には、移動元のファイルが残るか、消えるかの違いしかないけれど、中身の動作は大きく異なるので処理速度も全然違う。

難しい話が苦手な方もいると思うので、先に結論だけ表にまとめておく。

移動先 切り取り ドラッグ&ドロップ コピー
同じドライブ 高速・移動元は消える 高速・移動元は消える 低速:移動元は残る
別のドライブやファイルサーバー 低速・移動元は消える 低速・移動元は残る 低速・移動元は残る

同じドライブ内なら、切り取り・貼り付けが速い。
別のドライブへの移動なら、速度は変わらないので安全重視(元ファイルが残る)でコピーが良い。
これは、コピー先のドライブが不良品だったら、データが消失するためだ。

さて、以下は原理の説明。

Windowsは下図のようにどのファイルがハードディスクのどの位置に入っているかをインデックス(目次)として管理している。

上の例でいうと、AというファイルがC:\にあり、物理的にはハードディスクの8番地に書き込まれている状態だ。

切り取り&貼り付けでデスクトップに移動したらどうなるかというと、ハードディスク上は物理的には移動せずに目次だけが書き換えられる。

物理的な移動を伴わないので、どれだけ大きなファイルだとしても書き換えは一瞬である。

それに対し、コピーの場合はデータそのものをコピーするので時間がかかる。
結果は以下のようになる。

ここまでは同じドライブ内での説明であるが、別のドライブへ切り取り&貼り付けする場合はもちろん物理的にデータも移動する。
Cドライブがいっぱいになったから、外つけドライブに移そうという場面で、目次だけ変わっても意味がないからだ。
したがって、コピーした場合と同じだけの時間がかかるので、コピーの方が良い。

ドラッグ&ドロップでは、同じドライブ内の場合は切り取りの動作になり、別のドライブならコピーになる。


次にファイルを消去した場合はどうなるか。
実際、どれだけ大きなファイルでも削除はそんなに時間がかからない。

実はファイルの消去も、Windowsは目次を消しているだけである。

上の例でいうと、番地8は管理上「空き」となったが、次のデータが入ってくるまでは削除したはずのデータ自体が残っている。
ゴミ箱を空にしても、Shift+Deleteで直接削除しても、ハードディスク上のデータはすぐには消えない。
なぜそんな仕組みになっているかというと、その方が速いから。

だから、ファイナルデータ等のファイル救出ソフトで、救い出すことが出来るというわけだ。

ただし、「空き」となっているので、放っておくとどんどん別のデータで上書きされていく。
消してしまったら、速やかにこれらのソフトを使わないと、救出率は下がってしまうので注意。

逆に、パソコンを処分するときに個人情報を守るには、データ抹消ソフトを使う必要がある。


データ抹消ソフトは、空きとなっている領域も含めて、ハードディスク全体を0で上書きしたり、1で上書きしたりを繰り返すことで、完全に消去するツールである。
これで消してしまったらデータ復元ソフトでも復旧できない。

ファイルシュレッダーソフトというのも存在するが、これは特定ファイルを消す際に、データのあった物理領域を消してくれるツールである。

プライバシーに敏感な方は、使ってみても良いかもしれない。

当ブログは、amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、 Amazonアソシエイト・プログラムの参加者です。