“拒绝访问文件路径”

时间:2014-03-05 07:23:23

标签: vb.net

每当我的应用程序尝试将文件复制到C:\ Users \ ??? \ AppData \ Local时,我得到“拒绝访问文件路径”即使我使用admin运行应用程序,它仍然不是工作,有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

如果文件夹标记为Access to the path '...' is denied,则会出现ReadOnly错误。您可以在复制文件之前尝试删除此标志。

Dim info As DirectoryInfo = New DirectoryInfo("C:\Users\???\AppData\Local")

If (info.Exists AndAlso ((info.Attributes And FileAttributes.[ReadOnly]) = FileAttributes.[ReadOnly])) Then
    info.Attributes = (info.Attributes Xor FileAttributes.[ReadOnly])
End If

<强>更新

我进行了谷歌搜索,发现这些链接看起来很有趣:

  

“这些是连接点:隐藏的,受保护的操作系统文件,不应由用户访问。每个文件都指向用户可访问的文件夹:”

  • 应用程序数据: C:\ Users {用户名} \ AppData \ Roaming
  • Cookie: C:\ Users {用户名} \ AppData \漫游\ Microsoft \ Windows \ Cookies
  • 历史记录: C:\ Users {用户名} \ AppData \ Local \ Microsoft \ Windows \ History
  • 本地设置: C:\ Users {用户名} \ AppData \ Local
  • 我的文档: C:\ Users {用户名} \ Documents
  • NetHood: C:\ Users {用户名} \ AppData \漫游\ Microsoft \ Windows \网络快捷方式
  • PrintHood: C:\ Users {用户名} \ AppData \ Roaming \ Microsoft \ Windows \ Printer Shortcuts
  • 最近: C:\ Users {用户名} \ AppData \漫游\ Microsoft \ Windows \ Recent
  • SendTo: C:\ Users {user name} \ AppData \ Roaming \ Microsoft \ Windows \ SendTo
  • 开始菜单: C:\ Users {用户名} \ AppData \漫游\ Microsoft \ Windows \开始菜单
  • 模板: C:\ Users {用户名} \ AppData \ Roaming
  • Internet临时文件: C:\ Users {用户名} \ AppData \ Local \ Microsoft \ Windows \ Temporary Internet Files
  

“这些交接点可以识别如下:”

  • 他们设置了FILE_ATTRIBUTE_REPARSE_POINT,FILE_ATTRIBUTE_HIDDEN和FILE_ATTRIBUTE_SYSTEM文件属性。
  • 他们还将访问控制列表(ACL)设置为拒绝对所有人的读取权限。

<强>因此...

我不知道这是推荐的,会起作用还是抛出错误,但你可以尝试删除这些标志:

info.Attributes = (attributes Xor (FileAttributes.ReparsePoint Or FileAttributes.Hidden Or FileAttributes.System))

然后再添加回来:

info.Attributes = (attributes Or (FileAttributes.ReparsePoint Or FileAttributes.Hidden Or FileAttributes.System))