だから私はという名前の場所の配列を持っています locations
およびという名前の宛先変数 copyTO
.
ここに私のコードです:
For Each locat In locations
My.Computer.FileSystem.CopyDirectory(locat, copyTO, True)
Next
権限がないファイルや使用されているファイルをコピーしようとすると、アプリケーションがクラッシュします。
これらのファイルを無視して残りをコピーするにはどうすればよいですか?
私はグーグルを試しましたが、この問題の解決策は見つかりませんでした...
ありがとうございました!
回答:
回答№1は0何が起こっているのかというと、アプリケーションでエラーが発生し、例外をどうするかわからないということです。Try..Catch..EndCatchを実行すると、エラーへの対応方法を選択できます。
Try
For Each locat In locations
My.Computer.FileSystem.CopyDirectory(locat, copyTO, True)
Next
Catch ex As IOException
" The file was in use, so it cannot be copied
"Throw an error or do what you want.
End Try
Try ... Catchのドキュメント ドキュメント:MSDN
回答№2の場合は0
ファイルがロックされているかどうかを知る方法は、コピーを試みるまで読み取り専用です。ファイルを確認してからコピーを試みるまでの間に、状態が変化する可能性があるためです。
ファイルをコピーするときは、各エラーのログを保持しますが、コピープロセスを続行します。最後に、すべてのエラーのログを表示します。
For Each locat In locations
Try
My.Computer.FileSystem.CopyDirectory(locat, copyTO, True)
Catch ex As IOException
" Log the error and the file and display it later
End Try
Next