解决方案

可以使用.NET FileStream类方法Lock和Unlock,而不是使用interop:

FileStream.Lock
http://msdn.microsoft.com/zh-CN/library/system.io.filestream.lock.aspx

FileStream.Unlock
http://msdn.microsoft.com/zh-CN/library/system.io.filestream.unlock.aspx

或者使用下面代码

public bool IsFileLocked(string filePath)
{
    try
    {
        using (File.Open(filePath, FileMode.Open)){}
    }
    catch (IOException e)
    {
        var errorCode = Marshal.GetHRForException(e) & ((1 << 16) - 1);

        return errorCode == 32 || errorCode == 33;
    }

    return false;
}
c# 如何检查文件锁定?

在.net中如何检查文件是否被锁定?

日期:2020-03-23 22:54:00 来源:oir作者:oir