私のファイル転送アプリケーションは現在動作しており、ファイルを本来の方法で転送しています。しかし、スタックオーバーフローの誰かが光を当てることができると信じている別の問題に遭遇しました。
ターゲットの場所に重複がない状態で初めてファイルを転送した場合、またはプログラムの実行中に既存の重複ファイルを上書きするために同じファイルを再度転送した場合、問題は発生しません。しかし、プログラムを閉じてから再度開いて同じファイルを再度転送すると、以前に転送されたファイルの既存の複製がターゲットの場所にあるため、問題が発生します。
エラーが発生しますUnauthorizedAccessException: Access to the path denied
管理者アカウントでソフトウェアを実行しているため、これはユーザー権限の問題ではないと思います。しかし、もちろん、これについて 100% 確信があるわけではありません。私の仮定が間違っている場合は、修正してください。
これについて何か提案はありますか?いくつかのコードと組み合わせて使用することでこれを処理できると思いますが、これを処理File.Exist
するより良い方法があるに違いありません。
これが私のコードです。
'This is where the error occurs; in the initialization of fileStream
'Maybe this has something to do with FileAccess and FileMode? I'm not sure.
Using fileStream As New FileStream(FilePath, FileMode.Create, FileAccess.Write)
FileSharingStatusBar.Panels.Item(1).Text = "Receiving file . . ."
Do Until TotalData = FileLength
If ReadBytes = 0 Then
fileStream.Close()
FileTransferInterrupted = True
Exit Do
Else
ReadBytes = ClientSocket.GetStream.Read(FileData, 0, FileData.Length())
fileStream.Write(FileData, 0, ReadBytes)
TotalData += ReadBytes
End If
Loop
End Using