1

新しいファイルを定期的にチェックして処理するプログラムがあります。

ファイルが FTP 経由でコピーされないように安全を確保したいので、最初にファイルを移動します。
奇妙なことに、Windows Server 2008 ではファイルがコピーされていても移動され、FTP コピー操作は新しい場所で終了します。

これはどのように可能ですか?

vbs ファイルでこの単純なコード行を使用して問題をテストしました。

dim fso
set fso = createobject("Scripting.FileSystemObject")
fso.MoveFile "bigfile.zip", "moved\bigfile.zip"
4

1 に答える 1

1

ファイルを (同じドライブ内で) 移動すると、そのファイルが別の場所にあることをファイル システムに伝えるだけで、実際にデータを移動しているわけではありません。したがって、移動が先に進み、ファイルがどこにあるかがファイルシステムに通知されると思いますが、FTP操作により、実際のデータ用にハードドライブ上のスペースが既に割り当てられているため、ファイルが移動されたという事実は勝ちません。データが保存される場所に影響を与えないため、すべて機能します。

ファイルを別のドライブに移動した場合、どこかで何かが壊れると思います。

クライアントにアクセスできる場合は、クライアントに後で別の小さなファイルを名前bigfile.zip.completeなどで書き込むようにさせることができ、サーバーアプリは処理を開始する前にそれを待つことができます。そうすれば、コピーが完了したことを確認できます(これは、途中で接続が切断され、クライアントがファイルのアップロードが完了していないにもかかわらず停止した場合にも機能します)。

または、クライアントにアクセスできない場合は、ファイルのサイズを確認してみてください。数秒または数分で変更されていない場合は、ファイルが完了していることを願っています.

于 2010-12-04T20:44:38.593 に答える