Delphi Windows API判断文件共享锁定状态

一、概述 
锁是操作系统为实现数据共享而提供的一种安全机制,它使得不同的应用程序,不同的计算机之间可以安全有效地共享和交换数据。要保证安全有效地操作共享数据,必须在相应的操作前判断锁的类型,然后才能确定数据是否可读或可写,从而为开发出健壮的程序提供切实依据。   
同样,在Windows中,文件可以共享模式打开,它也涉及到锁的操作问题。根据Windows中文件共享时加锁范围的大小,锁可分为全局锁和局部锁;全局锁以锁定文件全部内容为特征,而局部锁以锁定文件的局部内容为特征,且文件的锁定区域不可重复。根据Windows中文件共享时锁的操作权限分类,锁可分为:读锁,写锁,读写锁(可读可写,全局锁)。   

利用上述文件中锁的区域不可重复的特性,我们可尝试给指定文件加一全局锁。若加锁成功,说明指定文件未被其它进程锁定;否则,说明有其它进程锁定了该文件。这里,我们利用两个Windows   Api文件操作函数:OpenFile和CreateFile来实现锁定状态的判断。   

二、实现方法   

1.   OpenFile函数使用说明   
函数原型:function   OpenFile(const   lpFileName:   LPCSTR;   var   lpReOpenBuff:   TOFStruct;   
uStyle:   UINT):   HFILE;   stdcall;   
函数功能:以不同方式打开文件的操作(为兼容16位Windows程序保留的函数)。建议   
Windows下使用CreateFile函数。   
参数说明:lpFileName:   要打开文件的名称   
lpReOpenBuff:   变量指针,用于存储文件被首次打开时接收信息。   
UStyle:   打开文件的常量类型。   
常量名   
意义   

Of_Create   
创建文件   

Of_Delete   
删除指定文件   

Of_Exist   
打开文件以验证其存在否?存在,返回一无效句柄;否则,返回负数   

Of_Parse   
填充lpReOpenBuff内容,但不进行任何操作   

Of_Prompt   
如存在不存在,则显示一有重试和取消按钮的消息框   

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值