/ /コピー中にファイルを無視する-vb.net

コピー中にファイルを無視する-vb.net

だから私はという名前の場所の配列を持っています 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