判断文件是否正在使用

作者 : luckyso888
标题 : // 判断文件是否正在使用
关键字:
分类 : DELPHI编程
密级 : 公开
 

(评分: , 回复: 0, 阅读: 85)
// 判断文件是否正在使用
function IsFileInUse(FName: string): Boolean;
var
 HFileRes: HFILE;
begin
 Result := False;
 if not FileExists(FName) then
  Exit;
 HFileRes := CreateFile(PChar(FName), GENERIC_READ or GENERIC_WRITE, 0,
  nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
 Result := (HFileRes = INVALID_HANDLE_VALUE);
 if not Result then
  CloseHandle(HFileRes);
end;

{ 功能说明:查找一个路径下的所有文件。
 参数:path:路径, filter:文件扩展名过滤, FileList:文件列表, ContainSubDir:是否包含子目录}
procedure FindFileList(Path,Filter:string;FileList:TStrings;ContainSubDir:Boolean);
var
 FSearchRec,DSearchRec:TSearchRec;
 FindResult:shortint;
begin
 FindResult:=FindFirst(path+Filter,sysutils.faAnyFile,FSearchRec);

 try
 while FindResult=0 do
 begin
  FileList.Add(FSearchRec.Name);
  FindResult:=FindNext(FSearchRec);
 end;
 
 if ContainSubDir then
 begin
  FindResult:=FindFirst(path+Filter,faDirectory,DSearchRec);
  while FindResult=0 do
  begin
   if ((DSearchRec.Attr and faDirectory)=faDirectory)
    and (DSearchRec.Name<>'.') and (DSearchRec.Name<>'..') then
    FindFileList(Path,Filter,FileList,ContainSubDir);
    FindResult:=FindNext(DSearchRec);
  end;
 end;
 finally
  FindClose(FSearchRec);
 end;
end;
// 取文件夹文件数
function GetDirFiles(Dir: string): Integer;
var
 sr: TSearchRec;
 fr: Integer;
begin
 Result := 0;
 fr := FindFirst(AddDirSuffix(Dir) + '*.*', faAnyFile, sr);
 while fr = 0 do
 begin
  if (sr.Name <> '.') and (sr.Name <> '..') then
   Inc(Result);
  fr := FindNext(sr);
 end;
 FindClose(sr);
end;
 


2005-12-28 11:42:27  

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值