【发布时间】:2012-09-18 13:43:12
【问题描述】:
我有一个 192k 大小的文件,我想锁定文件的中间。
Ex) 我想用 c# 锁定 64k-128k 的文件。知道如何锁定文件的那部分吗?
【问题讨论】:
-
这被称为“字节范围锁定”,非常有价值。
我有一个 192k 大小的文件,我想锁定文件的中间。
Ex) 我想用 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
【讨论】:
【讨论】: