![写入隐藏文件有什么问题吗?](https://linux22.com/image/1242540/%E5%86%99%E5%85%A5%E9%9A%90%E8%97%8F%E6%96%87%E4%BB%B6%E6%9C%89%E4%BB%80%E4%B9%88%E9%97%AE%E9%A2%98%E5%90%97%EF%BC%9F.png)
如果我在记事本中编辑隐藏文件,我可以保存更改。在写字板中编辑并尝试保存同一个文件会导致弹出“访问 C:...\file.txt”被拒绝”对话框。
在我的特定场景中,我无法隐藏.ReSharper.user
文件,这让我很沮丧。如果我这样做,下次我关闭 Visual Studio 时,ReSharper 会抱怨它无法保存我的设置。
啊!为什么 Windows 程序与能够写入隐藏文件不一致?为什么文件的隐藏属性会影响其可写性?
答案1
我目前能够在 ReSharper v6.0 中重现此问题。问题可能源于 File.Exists() 调用在文件隐藏时未检测到该文件。因此,我已记录了潜在解决方案的票据:
RSRP-287503 如果文件被隐藏,则保存解决方案设置(ReSharper.user)时出错
我不会说 Windows 程序在处理隐藏文件时不一致,但是在设计软件时必须小心谨慎,以正确适应访问隐藏文件可能发挥作用的情况(就像本例中的 ReSharper 一样)
答案2
您是否已检查以确保 .ReSharper.user 文件未标记为只读?据我测试,Visual Studio 2008 和 2010 可以正常写入隐藏文件(查找解决方案旁边的 .suo 文件进行检查)。如果您使用版本控制系统,它通常会在签入文件时将文件标记为只读。如果使用版本控制系统,您可能已将 .ReSharper.user 文件包含在项目中并签入它们,这会使它们变为只读。将它们签出或从源代码控制中删除,以便能够写入它们。