在 Windows 只读文件上设置时间戳

现在,在具有只读属性的文件上设置时间戳将在 Windows 上成功,不再引发异常。

旧行为

在 .NET 6 维护版本之前,在 Windows 只读文件上设置时间戳会导致出现 UnauthorizedAccessException

新行为

从 .NET 6.0.2 开始,在 Windows 只读文件上设置时间戳会成功。

引入的版本

.NET 6.0.2(维护版本)

中断性变更的类型

此项更改可能会影响二进制兼容性

更改原因

客户提供反馈,表示希望在只读文件上设置时间戳的操作成功。 此更改还将使 Windows 行为与 Linux 一致。 最后,此行为是由 bug 无意导致的。

现有代码不太可能希望在只读文件上设置时间戳的操作失败。 但是,如果你的代码希望它失败,那么在尝试设置时间戳之前,请使用 File.GetAttributes(String) 添加对只读属性的检查。

受影响的 API