Windows で読み取り専用ファイルにタイムスタンプを設定する
Windows で読み取り専用属性のあるファイルにタイムスタンプを設定できるようになりました。例外はスローされません。
以前の動作
.NET 6 サービス リリース以前は、Windows で読み取り専用ファイルにタイムスタンプを設定すると UnauthorizedAccessException になりました。
新しい動作
.NET 6.0.2 以降、Windows で読み取り専用ファイルにタイムスタンプを設定できるようになりました。
導入されたバージョン
.NET 6.0.2 (サービス リリース)
破壊的変更の種類
この変更は、バイナリの互換性に影響を与える可能性があります。
変更理由
読み取り専用ファイルにタイムスタンプを設定できると良いという要望をお客様からいただきました。 また、この変更により Windows での動作が Linux での動作と同じになります。 最後になりますが、この動作は意図せず、バグにより引き起こされたものでした。
推奨される操作
既存のコードでは、読み取り専用ファイルにタイムスタンプを設定できないことはないでしょう。 ただし、お使いのコードで設定できない場合、タイムスタンプの設定前に File.GetAttributes(String) を利用する読み取り専用ファイル属性の確認を追加してください。
影響を受ける API
- System.IO.File.SetCreationTime(String, DateTime)
- System.IO.File.SetCreationTimeUtc(String, DateTime)
- System.IO.File.SetLastAccessTime(String, DateTime)
- System.IO.File.SetLastAccessTimeUtc(String, DateTime)
- System.IO.File.SetLastWriteTime(String, DateTime)
- System.IO.File.SetLastWriteTimeUtc(String, DateTime)
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET