2013-02-23 22 views
1

我的文件傳輸應用程序正在運行,按照它應該的方式傳輸文件。但是我遇到了另外一個問題,我相信這裏的某個人在stackoverflow中可以說明一些問題。UnauthorizedAccessException在文件傳輸期間

當我在目標位置傳送文件的拳頭時,沒有任何重複或當我傳送相同文件的程序運行時,再次以覆蓋現有的副本文件不會發生此問題。但是,當我關閉程序然後重新打開它再次傳輸相同的文件時,與之前傳輸的目標位置上的文件的現有副本一起發生問題。

我得到的錯誤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 
+0

你需要選擇一個更好的文件路徑,確保它是一個完整的路徑和選擇,你可以寫一個文件夾。 – 2013-02-23 22:18:25

+0

感謝您的回覆。除了更改文件路徑之外,還有其他的工作嗎?我相信我目前的文件路徑是完整路徑,並且可以毫無問題地寫入(應該是),因爲它在管理員帳戶中。 – 2013-02-24 05:15:23

回答

0

幾天後,我終於真正解決了這個問題。我在我的實施中刪除了NetworkStream.ReadNetworkStream.Write,並將其替換爲BinaryReader.ReadStringBinaryWriter.Write。這樣,處理文件傳輸和日誌記錄的過濾就變成了一個,避免了網絡傳輸過程中的混淆。

相關問題