错误System.UnauthorizedAccessException

   都知道asp.net程序经常出现访问文件是没有访问权限的错误,例如

异常详细信息: System.UnauthorizedAccessException: 拒绝访问。
其实是很简单的是因为没有给分配权限,修改配置文件,或者分配权限就可以解决。
参考
但今天遇到一个winform访问网络路径文件的问题,也出现了System.UnauthorizedAccessException
************** 异常文本 **************
System.UnauthorizedAccessException: 对路径“x:\T639\WIND_2\925\11070420.003”的访问被拒绝。
   在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   在 System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
   在 System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
   在 System.IO.File.Open(String path, FileMode mode)
 
如果是本地磁盘没有任何问题,但如果是把网络磁盘映射为本地磁盘,就会有问题,所以可能和网络有关系。
如果把文件拷到本地没有问题,所以不是文件的问题。考虑到可能是权限问题,但自己双击鼠标可以直接打开,也没有问题,程序打开和自己双击打开有什么区别?
按理说,winform程序和当前登录windows的用户权限应该是一样的啊。
 FileStream fs = File.Open(foldFile, FileMode.Open)
经过很长时间的测试,修改为如下,就没有问题了
 FileStream fs = File.Open(foldFile, FileMode.Open, FileAccess.Read);
经过测试才知道,因为网络文件夹只有读取的权限,没有写入的权限
官方文档File.Open
以指定模式打开的指定路径上的 FileStream,具有读/写访问权限并且不共享。两个参数默认是有写入权限的,所以会出现这个错误。

问题至此解决了,原本以为很复杂,没遇到过,也没有在网上找到相关问题。看来官方文档还是很详细,很全面的啊。




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值