-1

ソース コード: vb.net

File.Move() メソッドを使用して、ファイルを移動元から移動先の場所に移動します。ただし、宛先の場所は 1 つのツールによって監視されています。ファイルを宛先の場所に移動するたびに、ファイルが取得されて処理されます。ここでの問題は、約 5 GB のファイルのような巨大なボリュームのファイルを移動しようとすると、ツールはすぐにファイルを取得して、移動操作が完了する前に処理を試み、すべてのユーザーに失敗通知を送信します。今度は正常に処理し、今度は成功通知を送信します。

サードパーティのツールであるため、宛先フォルダーを監視しているツールを制御することはできません。ただし、サードパーティがそのファイルを取得したりアクセスしようとしたりできないように、移動操作が完了するまで ReadWrite アクセスなどの移動先フォラーをロックする代替オプションを見つけたいと考えています。

Plsは私たちを助けます。

4

2 に答える 2

0

まず、@hometoast に同意します。このようなツールは特定のファイル拡張子を探すだけなので、別のファイル拡張子でコピーしてから名前を変更できます。

ただし、それを除いて、ファイルを一時的な場所にダウンロードしてから、監視対象のディレクトリにファイルを移動します。Move はファイルの内容を再コピーしませんが、ファイルシステム内のポインターを更新するだけです。アトミックである必要があります。

于 2012-06-25T14:53:49.783 に答える
0

機能するかどうかはわかりませんが、ディレクトリでも次のように機能する可能性があります。

FileOpen(1, "c:\file.ext", OpenMode.Binary)    
Lock(1)
'Do something with file here
Unlock(1)
FileClose(1)

参照と例はこちら

お役に立てば幸いです。

于 2012-06-25T14:33:03.600 に答える