gpt4 book ai didi

c# - 设置属性后文件被锁定

转载 作者:行者123 更新时间:2023-11-30 20:55:42 25 4
gpt4 key购买 nike

我有一个方法可以将对象保存到文件中。该对象被多次修改和保存。问题是,当我第二次尝试将对象保存到同一个文件中时,出现了 UnautorizedAccessException。这是代码:

public void Save(string path)
{
string fileName = String.Format("{0}\\{1}", path, DataFileName);
using (FileStream fs = new FileStream(fileName, FileMode.Create))
{
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(fs, this);
File.SetAttributes(fileName, FileAttributes.Hidden);
}
}

最有趣的是,如果我注释行

File.SetAttributes(fileName, FileAttributes.Hidden);

问题消失了。怎么会?我该如何解决这个问题?

最佳答案

MSDN这是关于 FileMode.Create 的:

Specifies that the operating system should create a new file. If the file already exists, it will be overwritten. This requires FileIOPermissionAccess.Write permission. FileMode.Create is equivalent to requesting that if the file does not exist, use CreateNew; otherwise, use Truncate. If the file already exists but is a hidden file, an UnauthorizedAccessException exception is thrown.

这正是您所看到的。所以解决方案似乎要么使用不同的模式,要么按照评论中的建议,取消隐藏 -> 保存 -> 隐藏。

关于c# - 设置属性后文件被锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18109854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com