用CREATEFILE可以判断以独占方式打开的文件是否被打开。但TXT和JPG等类型的文件不是以独占类型方式打开的;怎样判断这些文件是否被打开呢??????????????
怎样判断以非独占方式打开的文件(如TXT和JPG文件)是否被打开?
怎样判断以非独占方式打开的文件(如TXT和JPG文件)是否被打开?
解决方案 »
- 求助,要设置 dbgrideh 的哪个属性,才使 dbgrideh 有checkbox 属性呢?
- 菜问题:Trunc和Round有啥区别?
- 自定义控件时,如何写TStrings属性?
- 经典砍价术
- 200分请教:如何提取Delphi写的程序中的图标(是被包含在ImageList中的)?????
- 如何把一个Component编译成Activex 组件,然后在VC里调用?
- delphi能否制作BBS论坛网页,都用那些控件?
- 各位大虾,主从表问题,小弟在线等待
- 急!急!有关DLL问题!
- 精彩专题,不能不看《微软 vs Sun》!!!
- TPrintDBGridEh中如何使预览中的表自动适应纸张的大小?
- 怎样使一个程序在桌面出现之前就运行?
TXT和JPG是以非独占方式打开的。你打开这种类型的文件时,可以对其进行任意操作(包括重命名,删除)。
你说的方法行不通。
下次回复前请自己先试试,成功了再回复.
function IsFileInUse(const FileName:string):boolean;
var
hFile:THandle;
begin
Result:=false;
if not FileExists(FileName) then Exit;
hFile:=CreateFile(PChar(FileName),
GENERIC_READ or GENERIC_WRITE,
0,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
Result:=(hFile=INVALID_HANDLE_VALUE);
if not Result then CloseHandle(hFile);
end;
================================================
请问一下是楼主的想当然还是?
建议楼主看一下Windows操作系统的文件管理。
拜托,你说的方法我已经在上面说过了,只适用于以独占方式打开的文件类型。
TXT和JPG是以非独占方式打开的。你打开这种类型的文件时,可以对其进行任意操作(包括重命名,删除)。
你说的方法行不通。
下次回复前请自己先试试,成功了再回复.
=============================================================================
怎么这样说话呢
http://www.delphibbs.com/delphibbs/dispq.asp?lid=693107
http://dev.csdn.net/develop/article/22/22347.shtm