锁定文件块

时间:2012-09-18 13:43:13

标签: c# .net

我有一个192k大小的文件,我想锁定文件的中间位置。

例)我想用c#锁定64k-128k的文件。知道如何锁定文件的这一部分吗?

3 个答案:

答案 0 :(得分:7)

您需要使用LockFileEx

  

锁定指定的文件以供调用进程独占访问。此函数可以同步或异步操作,并可以请求独占锁或共享锁。

您正在寻找共享锁。

[DllImport("kernel32.dll")]
static extern bool LockFileEx(IntPtr hFile, uint dwFlags, uint dwReserved,
   uint nNumberOfBytesToLockLow, uint nNumberOfBytesToLockHigh,
   [In] ref System.Threading.NativeOverlapped lpOverlapped);

答案 1 :(得分:3)

您可能希望查看Windows API中的LockFile函数。同一页面还提到了LockFileEx函数。好极了!周围有很多有趣的事情;)

pinvoke网站上有一个页面:http://www.pinvoke.net/default.aspx/kernel32.lockfile

答案 2 :(得分:0)

您无法使用System.IO锁定文件的某些部分。如果文件上有打开的句柄,则会锁定整个文件。

您可以使用WinAPI执行此操作。

查看Using LockFileEX in C#