• 文件管理类函数(2)


    //查找一个文件 FileSearch
    var
      FileName,Dir,s: string;
    begin
      FileName := 'notepad.exe';
      Dir := 'c:windows';
      s := FileSearch(FileName,Dir);

      if s<>'' then
        ShowMessage(s)  //c:windows otepad.exe
      else
        ShowMessage('没找到');
    end;

    //搜索文件 FindFirst; FindNext; FindClose
    var
      sr: TSearchRec;     //定义 TSearchRec 结构变量
      Attr: Integer;      //文件属性
      s: string;          //要搜索的内容
      List: TStringList;  //存放搜索结果
    begin
      s := 'c:windows*.txt';
      Attr := faAnyFile;              //文件属性值faAnyFile表示是所有文件
      List := TStringList.Create;     //List建立
    
      if FindFirst(s,Attr,sr)=0 then  //开始搜索,并给 sr 赋予信息, 返回0表示找到第一个
      begin
        repeat                        //如果有第一个就继续找
          List.Add(sr.Name);          //用List记下结果
        until(FindNext(sr)<>0);       //因为sr已经有了搜索信息, FindNext只要这一个参数, 返回0表示找到
      end;
      FindClose(sr);                  //需要结束搜索, 搜索是内含句柄的
    
      ShowMessage(List.Text);         //显示搜索结果
      List.Free;                      //释放List
    
      //更多注释:
      //TSearchRec 结构是内涵文件大小、名称、属性与时间等信息
      //TSearchRec 中的属性是一个整数值, 可能的值有:
      //faReadOnly  1   只读文件
      //faHidden    2   隐藏文件
      //faSysFile   4   系统文件
      //faVolumeID  8   卷标文件
      //faDirectory 16  目录文件
      //faArchive   32  归档文件
      //faSymLink   64  链接文件
      //faAnyFile   63  任意文件
    
      //s 的值也可以使用?通配符,好像只支持7个?, 如果没有条件就是*, 譬如: C:*
      //实际使用中还应该在 repeat 中提些条件, 譬如判断如果是文件夹就递归搜索等等
    end;

    //读取与设置文件属性 FileGetAttr; FileSetAttr
    var
      FileName: string;
      Attr: Integer;  //属性值是一个整数
    begin
      FileName := 'c:	empTest.txt';
      Attr := FileGetAttr(FileName);
      ShowMessage(IntToStr(Attr));  //32, 存档文件
    
      //设置为隐藏和只读文件:
      Attr := FILE_ATTRIBUTE_READONLY or FILE_ATTRIBUTE_HIDDEN;
      if FileSetAttr(FileName,Attr)=0 then  //返回0表示成功
        ShowMessage('设置成功!');
    
      //属性可选值(有些用不着):
      //FILE_ATTRIBUTE_READONLY = 1; 只读
      //FILE_ATTRIBUTE_HIDDEN = 2; 隐藏
      //FILE_ATTRIBUTE_SYSTEM = 4; 系统
      //FILE_ATTRIBUTE_DIRECTORY = 16
      //FILE_ATTRIBUTE_ARCHIVE = 32; 存档
      //FILE_ATTRIBUTE_DEVICE = 64
      //FILE_ATTRIBUTE_NORMAL = 128; 一般
      //FILE_ATTRIBUTE_TEMPORARY = 256
      //FILE_ATTRIBUTE_SPARSE_FILE = 512
      //FILE_ATTRIBUTE_REPARSE_POINT = 1204
      //FILE_ATTRIBUTE_COMPRESSED = 2048; 压缩
      //FILE_ATTRIBUTE_OFFLINE = 4096
      //FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 8192; 不被索引
      //FILE_ATTRIBUTE_ENCRYPTED = 16384
    end;

    //获取文件的创建时间 FileAge; FileDateToDateTime
    var
      FileName: string;
      ti: Integer;
      dt: TDateTime;
    begin
      FileName := 'c:	empTest.txt';
      ti := FileAge(FileName);
      ShowMessage(IntToStr(ti));  //返回: 931951472, 需要转换
    
      dt := FileDateToDateTime(ti);  //转换
      ShowMessage(DateTimeToStr(dt));  //2007-12-12 14:27:32
    end;

  • 相关阅读:
    ibatis常用sql
    在eclipse中部署maven项目的问题
    如何成为一个设计师和程序员混合型人才
    一个程序员的读书笔记:程序设计的反思
    C# 中的 == 和 equals()有什么区别?
    2014百度之星资格赛解题报告:能量变换
    2014百度之星资格赛解题报告:Xor Sum
    2014百度之星资格赛解题报告:Labyrinth
    那些年我们一起追过的ACM
    最新全球排名前50网站前端开发语言统计
  • 原文地址:https://www.cnblogs.com/shijiaoyun/p/3844523.html
Copyright © 2020-2023  润新知