どのファイルをコピー完成
-
05-09-2019 - |
質問
を使用していReadDirectoryChangesWるパフォルダーについて知っておきましょ複製大型ファイルをフォルダを受け取れまで複数のFILE_ACTION_MODIFIEDメッセージのようで、各時刻の書き込みます大きなチャンクのファイルのファイルの変更を通知す。また、CreateFile APIをチェックの場合はファイルが開きAPない、一部のファイルは常にロックされるその他のAPは、例えば、読み込む場合は、見通し、PST更新しますが、私のAPができなアクセスすると、を開始しておりますの影のコピーを開きます。その後、私の質問は、どのファイル仕上げのコピー?
解決
このソリューションのhacky自然でありながら、もっと毛状況で走行できるポーリングループをチェックのサイズは変更した日付のファイルです。っていることを確認してください変更ができ やや 安全にこのようなファイルが完成copyingをご覧ください。
編集: これは最適なソリューション平均場合、このOPの場合より良いソリューションが、問題の制約考えていただきたいところだと思いdownvoting.
他のヒント
、_stat/_stat64
を使用しないでください。代わりに、ファイルにあなたが必要とするたびに開き、ファイルのサイズを取得するために_filelengthi64
を呼び出します。 _stat64
によって返されたファイルのサイズは、Windowsオペレーティングシステムによってリアルタイムで更新されていません。また、ファイルを開くことができることによって、あなたはどのような長期のコピー操作が完了していることを確認するためにテストしています。
Windowsは、ディレクトリの内容の更新を監視するためのAPIを提供します。 あなたは、新しいファイルを検出するために作成したイベントを使用していますが、このイベントの発火は必ずしもファイルがまだリリースされていることを意味しないことに注意してくださいすることができます。
ネイティブC ++の仕様とコード例:
http://msdn.microsoft.com/ EN-US /ライブラリ/ aa365261(VS.85).aspxのの
.NETます:
http://msdn.microsoft.com/en-私たち/ライブラリ/ system.io.filesystemwatcher.aspxする