C#でファイルが開かれてロックされているかを取得したかったので.netを調べたが、どうも無いみたい。
無いものは自作。FileInfoクラスのIsLocked拡張メソッドを社内ライブラリに追加しました。
(どこかのサイトを参考に作成したのですが、どこか忘れてしまいました。)
使用頻度は少ないですが、なにかの役にはたつでしょう。
public static bool IsLocked(this FileInfo file) {
if (file == null) return false;
if (file.Exists.Not()) return false;
try {
using var _ = file.Open(FileMode.Open, FileAccess.ReadWrite, FileShare.None);
} catch {
return true;
}
return false;
}