私はこのサイトでこの質問の複数のバージョンを見ましたが、私の正確な問題に対処しているようには見えないので、ここにあります:
を使用してファイルをコピーしようとしていますSystem.Copy
。宛先が存在する場合は、上書きする必要があります。私は約1か月間、問題なく1行のコードを使用していました。
IO.File.Copy(SourceFile, DestFile, True)
しかし、問題は約1週間前、より高度なチェックを開始したときに始まりました。部分的にロックされたファイルはコピーに失敗し、宛先は削除されます。一方、ロックされたファイルは正しく機能します。使用中のファイルの例外をトリガーするだけです。
そこで、コピーを起動する前に次の行を追加しました。
Using TestForAccess As New IO.FileStream(SourceFile, IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.None) : End Using
これは、ファイルが使用中の場合にエラーを起動するはずでした。しかし、それは敏感です。一部のファイル(thunderbirdのabook.mabなど)は、この追加されたコードでエラーをトリガーしますが、以前は正常にコピーされていました(エクスプローラーでコピーできます)。
私の質問は基本的に次のとおりです。システムにどのように伝えるか:可能であればコピーsource
する。destination
そうでなければ、壊れないのdestination
ですか?
あなたの助けに感謝します、このことは私を狂わせています。