大きなファイルのコピーと貼り付けはどのように機能しますか

大きなファイルのコピーと貼り付けはどのように機能しますか

コンピューターが大きなフォルダーの「コピー」と「貼り付け」をどのように実行するのか知りたいです。異なるプロセス間または同じプロセス間でのテキストのコピーと貼り付けは、コンテンツを RAM に保存し、そこから目的の場所にコピーすることで実現されると読んだことがあります。

では、2 GB の RAM と最大 4 GB の仮想メモリを持つマシンで、たとえば 10 GB のフォルダーをコピーする場合、コンピューターの命令はどのように流れるのでしょうか。ファイルのコピーはテキストのコピーとは異なります。

基本的な質問だと思いますが、リンクや洞察があれば教えていただければ幸いです。

答え1

クリップボードはファイル全体を保持する必要はありません。ファイルをコピーすると、そのパスのみがクリップボードに挿入されます。また、ファイルとしてマークされます。クリップボードは、プレーンテキスト、フォーマットされたテキスト、ファイル、画像、Word テキストなど、コンテンツの種類を追跡します。このため、たとえばペイントで画像を開き、Ctrl+を押してCディレクトリに貼り付けることはできません。これは、画像をコピーしたためであり、ディレクトリには画像ではなくファイルが保持されるためです。

互換性のあるコンテンツ(ファイルやフォルダなど)をディレクトリに貼り付けると、何らかのアプリケーションがコピー/移動操作を処理します。デフォルトではプロセスexplorer(スタートメニューやすべてのファイルエクスプローラーウィンドウを表示するプロセスと同じ)が処理しますが、一部のアプリケーションではこれを置き換える場合があります。[1]

次に何が起こるかは、あなたが何をしているかによって異なります。

  • もしあなたが〜なら同じパーティション上の別のディレクトリにファイルを移動するディスク上で物理的に移動されることはなく、パスのみが更新されます[2]
  • もしあなたが〜ならファイルを別のパーティションに移動する同じサイズのチャンクに分割され[3]、それらが1つずつコピーされ、元のファイルは削除されます。チャンクが小さすぎるとプロセスが遅くなり、チャンクが大きすぎるとメモリの消費量が増えます。
  • まったく同じことが、ファイルのコピー(同じパーティションであるかどうかは関係ありません)、元のファイルは削除されません。
  • 外部ストレージへの書き込み(USBドライブのように)は、まさにそのようには動作しません[4]し、その場合正確に何が起こるのかはわかりません。私の推測では、これは連続したチャンクごとのプロセスではなく、いくつかのチャンクごとに何か他のこと(バッファ関連?)が発生します。これについて何か知っている人がいたら、遠慮なく編集してください。

注釈:

[1] 例えばテラコピーこれは、優れた高度なコピー ウィンドウの置き換えです。

[2] ハードディスク上の物理的なファイル構造はディレクトリ構造とは異なり、フラットで、すべての階層情報はパーティションの別の部分に保存されます。それがどのように行われるかはファイルシステムによって異なります(たとえば、マルチ)。その情報ブロックには、ファイルの場所などに関するすべての情報が保持されます。そのため、1 つのパーティション内でファイルを移動する場合、物理的に移動する必要はなく、パス情報のみを更新する必要があります。

[3] 文字通り、ハードディスク上で何も分割されません。コピー処理を処理するプログラムは、複数の別々のチャンクがあるかのように動作しますが、元のファイルは変更されません。完全に仮想的です。

[4]。TeraCopy を使用すると、固定ドライブのように「予測された進行状況」が機能せず、代わりに「実際の進行状況」がそれに追いつき、「予測された進行状況」が拡大されるなど、その動作を確認できます。エクスプローラーのデフォルトのコピー ウィンドウにも USB の問題があります。

関連情報