【问题标题】:UnauthorizedAccessException During File Transfer文件传输期间出现 UnauthorizedAccessException
【发布时间】:2013-02-23 17:31:56
【问题描述】:

我的文件传输应用程序现在正在运行,正在以应有的方式传输文件。但是我遇到了另一个问题,我相信 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

【问题讨论】:

  • 您需要选择一个更好的 FilePath,确保它是完整路径并选择您可以写入的文件夹。
  • 感谢您的回复。除了更改文件路径外,还有其他解决方法吗?我相信我当前的文件路径是完整路径,并且可以毫无问题地写入(应该是),因为它在管理员帐户中。

标签: .net vb.net filestream


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-26
    • 2012-12-30
    • 2015-06-01
    • 1970-01-01
    • 2014-06-02
    相关资源
    最近更新 更多