0

標準の Windows ファイル コピー プロセスの代わりとして機能するファイル コピー ユーティリティを作成しようとしています。これを行う主な理由は、コピー/移動キューのサポートを追加し、ファイル転送が同じ宛先物理メディアを含まない場合にのみ複数のファイル転送を有効にすることで、何らかの最適化を行うことです (複数のファイルがある場合に全体の転送速度がどのように低下​​するかはご存知のとおりです)。同じ宛先メディアで複数の転送が行われていますか?)

私は実際のプログラミング経験がほとんどないことを明確にしたいと思います。プロジェクトに C#/.net を使用する予定です。

本質的に、teracopy と同様の機能を作成するつもりです (同じパフォーマンスが得られない場合)。

専門家のアドバイスが必要な点は次のとおりです。

ファイルのコピー/移動速度は、ストレージ メディア (ハードディスク、フラッシュ ドライブなど) によってどのように異なりますか?

あるハードディスクから別のハードディスクへの操作の読み取り/書き込み速度 (たとえば、ファイルをハードディスク A から B に、A から A にコピーする)。

同時に実行された場合、どのような種類の同時コピー/移動操作が互いに大きな影響を与えないでしょうか(プロセッサまたはデバイスコントローラの負荷を考慮していません...またはすべきですか? )

質問について完全に明確ではなかった可能性があることを認めますので、回答を提供するために詳細が必要な場合はお知らせください.

ありがとうございました。

4

1 に答える 1

0

Win Api の一部を使用して、外部呼び出しを通じてC#でそのようなことを達成できると思います。または、私が気付いていないこのためのインターフェースがすでに存在する可能性があります(C#を2か月しか使用していないため)。ただし、個人的には、パフォーマンスが必要な場合は Windows Api を使用してC/C++で作成し、優れた機能とクロスプラットフォームの互換性が必要な場合はPythonで作成します。クロスプラットフォームの互換性と、標準の win API 関数の上にあるレイヤーを提供するライブラリを見つけてみてください。

このリンクが役立つ場合があります: http://msdn.microsoft.com/en-us/library/cc148994.aspx

また、クロスプラットフォームの互換性についてあまり心配していない場合は、ショートカットがあります。非常に簡単な Windows を使用している場合は、 BatchなどのOS 固有のコマンドを使用してみてください。たとえば、foo という名前のファイルを C:\ からD:\ 「C:\Foo.txt D:\Foo.txt をコピー」 を実行するだけで完了です。USB ドライブやハードディスクについて心配する必要はありません。必要なのは、コピー先のディレクトリだけです。 . これらのコマンドには、C/C++ の「system()」関数を使用してアクセスできます。C Sharp と同等のものは知りません。

于 2011-07-02T16:36:19.260 に答える