我有一个 192k 大小的文件,我想锁定文件的中间。
例如)我想用 c# 锁定文件的 64k-128k。知道如何锁定文件的那部分吗?
您需要使用LockFileEx
锁定指定文件以供调用进程独占访问。此函数可以同步或异步操作,并且可以请求排他锁或共享锁。
您正在寻找共享锁。
[DllImport("kernel32.dll")]
static extern bool LockFileEx(IntPtr hFile, uint dwFlags, uint dwReserved,
uint nNumberOfBytesToLockLow, uint nNumberOfBytesToLockHigh,
[In] ref System.Threading.NativeOverlapped lpOverlapped);
您可能想查看 Windows API 中的LockFile函数。同一页还提到了一个LockFileEx
功能。耶!玩得很开心;)
pinvoke 网站上有一个页面:http ://www.pinvoke.net/default.aspx/kernel32.lockfile