• 一些比较实用的小函数


    扫描文件夹极其子目录,列出所有文件,已经测试通过,绝对可用
    代码
    procedure FindAllFile(const Dir: string;List: TStringlist);
    var
      hFindFile: THandle;
      FindFileData: WIN32_FIND_DATA;
      FullName,FName,s:
    string;
    begin
      s:
    =IncludeTrailingPathDelimiter(Dir);
      hFindFile :
    = FindFirstFile(pchar(s+'*.*'), FindFileData);
      
    if hFindFile <> 0 then
      
    begin
        
    repeat
          FName:
    =FindFileData.cFileName;
          FullName:
    =s+FName;
          
    if (FName='.'or (FName='..'then continue;
          
    if (FindFileData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY then
            FindAllFile(FullName,List)
          
    else
            
    begin
              List.Add(FullName);
            
    end;
        
    until FindNextFile(hFindFile, FindFileData) = false;
        windows.FindClose(hFindFile);
      
    end;
    end;

    删除目录及其子目录和文件

    代码

    function DeleteDirectory(NowPath:   string):   Boolean;
      
    var
          search:   TSearchRec;
          ret:   integer;
          key:   
    string;
      
    begin
          
    if NowPath[Length(NowPath)]<>'\' then
            NowPath:
    =NowPath+'\';
            key:
    =Nowpath+'*.*';
            ret:
    =findFirst(key,faanyfile,search);
          
    while ret=0 do
          
    begin
            
    if((search.Attr and fadirectory) = faDirectory)then
            
    begin
              
    if(Search.Name<>'.')and(Search.name<>'..')then
                DeleteDirectory(NowPath   
    +   Search.name);
            
    end
            
    else
            
    begin
              
    if((search.attr and fadirectory)<>fadirectory)then
                 
    begin
                   deletefile(NowPath   
    +   search.name);
                 
    end;
              
    end;
            ret:
    =FindNext(search);
          
    end;
          findClose(search);
          removedir(NowPath);
          result:
    =True;
      
    end;

    获取文件扩展名

    代码
    function ExtractExteName(const FileName: string): string;
    var
      P: Integer;
    begin
      P :
    = Length(FileName);
      
    while (P > 0)and(FileName[P] <> '.'do
          Dec(P);
      Result :
    = Copy(FileName, P, Length(FileName)-P+1);
    end;

    判断文件是否存在

    代码

    function FileExists(const FileName: string): Boolean;
      
    function FileAge(const FileName: string): Integer;
      
    type
        LongRec 
    = packed record
          
    case Integer of
            
    0: (Lo, Hi: Word);
            
    1: (Words: array [0..1of Word);
            
    2: (Bytes: array [0..3of Byte);
        
    end;
      
    var
        Handle: THandle;
        FindData: TWin32FindData;
        LocalFileTime: TFileTime;
      
    begin
        Handle :
    = FindFirstFile(PChar(FileName), FindData);
        
    if Handle <> INVALID_HANDLE_VALUE then
        
    begin
          Windows.FindClose(Handle);
          
    if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then
          
    begin
            FileTimeToLocalFileTime(FindData.ftLastWriteTime, LocalFileTime);
            
    if FileTimeToDosDateTime(LocalFileTime, LongRec(Result).Hi, LongRec(Result).Lo) then
              Exit;
          
    end;
        
    end;
        Result :
    = -1;
      
    end;
    begin
      Result :
    = FileAge(FileName) <> -1;
    end;
  • 相关阅读:
    legend3---videojs存储视频的播放速率便于用户观看视频
    legend3---mathjax的动态渲染问题解决
    matplotlib库疑难问题---10、画直方图
    matplotlib库疑难问题---9、画箭头(综合实例)
    js释放图片资源
    javascript中的原型与原型链
    前端跨域方式
    matplotlib清除 axes 和 figure
    matplotlib画直方图细解
    CentOS 7.8 安装 Python 3.8.5
  • 原文地址:https://www.cnblogs.com/sun_catboy/p/1639848.html
Copyright © 2020-2023  润新知