1

我的文件传输应用程序现在正在运行,以应有的方式传输文件。但是我遇到了另一个问题,我相信 stackoverflow 中的某个人可以对此有所了解。

当我第一次传输文件,目标位置没有任何重复时,或者当我再次传输相同的文件以在程序运行时覆盖现有的重复文件时,问题不会发生。但是当我关闭程序然后重新打开它以再次传输相同的文件时,在目标位置上存在之前传输的文件的现有副本,就会出现问题。

我得到错误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
4

1 回答 1

0

几天后,我终于真正解决了这个问题。我在我的实现中删除了NetworkStream.Readand NetworkStream.Write,并将其替换为BinaryReader.ReadStringand BinaryWriter.Write。这样,处理文件传输和日志的过滤就变成了一个,避免了网络传输过程中的混乱。

于 2013-02-28T12:51:14.847 回答