C# ファイルがロックされているかを取得

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;
}

コメントを残す