博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
文件信息我的学习生涯(Delphi篇) - 11
阅读量:5760 次
发布时间:2019-06-18

本文共 3336 字,大约阅读时间需要 11 分钟。

工作之余抽点时间出来写写博文,希望对新接触的朋友有帮助。今天在这里和大家一起学习一下文件信息

    我们很多时候要和WIN32 API函数打交道。

    比如下例中的FileSetAttr、DeleteFile、DateTimeToFileDate

    -------------------------------------------------------------------------------------------------美丽分割线---------------------------

    年代:2006

    文件:

    

    图1:取得文件版本信息

   文件和信息

   图2:取得文件属性信息

   文件和信息

    

    单元文件:

    Unit1.pas

    每日一道理
虽然你现在还只是一株稚嫩的幼苗。然而只要坚韧不拔,终会成为参天大树;虽然你现在只是涓涓细流,然而只要锲而不舍,终会拥抱大海;虽然你现在只是一只雏鹰,然而只要心存高远,跌几个跟头之后,终会占有蓝天。
unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls;type  TForm1 = class(TForm)    btnsetTimeFormat: TButton;    Button2: TButton;    Button3: TButton;    Button4: TButton;    Edit1: TEdit;    Edit2: TEdit;    Edit3: TEdit;    Button5: TButton;    Memo1: TMemo;    Button1: TButton;    Edit4: TEdit;    procedure Button2Click(Sender: TObject);    procedure btnsetTimeFormatClick(Sender: TObject);    procedure Button3Click(Sender: TObject);    procedure Button4Click(Sender: TObject);    procedure Button5Click(Sender: TObject);    procedure Button1Click(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  end;  function GetExeFileVersion(FileName:String):String;var  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button2Click(Sender: TObject);begin  DeleteFile(Edit1.Text);end;procedure TForm1.btnsetTimeFormatClick(Sender: TObject);var  Err : DWord;  P : PChar;begin  P := pchar(Edit2.Text);  if SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SSHORTDATE,P) then  begin    Showmessage('OK');  end  else  begin    Err := GetLastError;    case Err of      ERROR_INVALID_ACCESS : ShowMessage('INVALID_ACCESS');      ERROR_INVALID_FLAGS  : showMessage('INVALID_FLAGS');      ERROR_INVALID_PARAMETER : ShowMessage('INVALID_PARAMETER');    end;  end;end;procedure TForm1.Button3Click(Sender: TObject);begin  FileSetAttr(Edit1.Text,StrToInt(Edit3.Text));end;procedure TForm1.Button4Click(Sender: TObject);var  i22:integer;begin  i22:=GetFileAttributes(pchar(Edit1.Text));  ShowMessage(IntToStr(i22));end;procedure TForm1.Button5Click(Sender: TObject);var  i23:integer;begin  i23:=DateTimeToFileDate(Now);  Memo1.Lines.Add(IntToStr(i23));end;function GetExeFileVersion(FileName:String):String;var  InfoSize,Wnd:DWORD;  VerBuf:Pointer;  VerInfo:^VS_FIXEDFILEINFO;begin    Result:='';    InfoSize:=GetFileVersionInfoSize(PChar(FileName),Wnd);    if InfoSize<>0 then    begin      GetMem(VerBuf,InfoSize);      try        if GetFileVersionInfo(PChar(FileName),Wnd,InfoSize,VerBuf) then        begin          VerInfo:=nil;          VerQueryValue(VerBuf,'\',Pointer(VerInfo),Wnd);          if VerInfo<>nil then Result:=Format('%d.%d.%d.%d',[VerInfo^.dwFileVersionMS shr 16,                                                             VerInfo^.dwFileVersionMS and $0000ffff,                                                             VerInfo^.dwFileVersionLS shr 16,                                                             VerInfo^.dwFileVersionLS and $0000ffff]);        end;      finally        FreeMem(VerBuf,InfoSize);      end;    end;  end;procedure TForm1.Button1Click(Sender: TObject);var  verInfo:string;begin  verInfo:= GetExeFileVersion(Edit4.Text);  ShowMessage(verInfo);end;end.

    

文章结束给大家分享下程序员的一些笑话语录: 某程序员对书法十分感兴趣,退休后决定在这方面有所建树。花重金购买了上等的文房四宝。一日突生雅兴,一番磨墨拟纸,并点上了上好的檀香,颇有王羲之风 范,又具颜真卿气势,定神片刻,泼墨挥毫,郑重地写下一行字:hello world.

你可能感兴趣的文章
Android ContentObserver
查看>>
文章“关于架构优化和设计,架构师必须知道的事情”
查看>>
疯狂java学习笔记1002---非静态内部类
查看>>
ISA2006实战系列之一:实战ISA三种客户端部署方案(上)
查看>>
TCP服务器
查看>>
AC旁挂三层交换机管理ap,二层接入ap心得
查看>>
JS中比较数字大小
查看>>
springcloud 学习-eureka搭建-为eureka添加认证
查看>>
jQuery插件的开发
查看>>
基础,基础,还是基础之JAVA基础
查看>>
如何成为一个C++高级程序员
查看>>
ant android 打包签名和渠道
查看>>
一个简单的接口,被调用并同步给出响应的方法
查看>>
我的友情链接
查看>>
显式锁(第十三章)
查看>>
看linux书籍做的一些重要笔记(2011.07.03更新)
查看>>
CString、Char* ,char [20]、wchar_t、unsigned short转化
查看>>
从案例学RxAndroid开发(上)
查看>>
Redis学习手册(内存优化)
查看>>
浅尝TensorFlow on Kubernetes
查看>>