delphi SHGetFileInfo函数


本文整理自网络,侵删。

 // 确认在USES分句中包含'ShellApi' 

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ShellApi, FileCtrl;

type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
Label4: TLabel;
FileListBox1: TFileListBox;
DirectoryListBox1: TDirectoryListBox;
DriveComboBox1: TDriveComboBox;
Label5: TLabel;
Edit4: TEdit;
Edit5: TEdit;
Label6: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormPaint(Sender: TObject);
private
{局部声明}
public
{公共声明}
end;

var
Form1: TForm1;
FileInfo : SHFILEINFO;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var filename : string;
attrs : string;
attributes : integer;
begin
form1.repaint;
if filelistbox1.ItemIndex <> - 1 then
begin
filename := FileListBox1.FileName;
end
else
begin
filename := DirectoryListBox1.Directory;
end;
edit1.text := filename;
//获取显示名
SHGetFileInfo(PChar(FileName),0,FileInfo,SizeOf(FileInfo),SHGFI_DISPLAYNAME);
edit2.text := FileInfo.szDisplayName;
//获取类型名
SHGetFileInfo(PChar(FileName),0,FileInfo,SizeOf(FileInfo),SHGFI_TYPENAME);
edit3.text := FileInfo.szTypeName;
//获取文件的图标
SHGetFileInfo(PChar(FileName),0,FileInfo,SizeOf(FileInfo),SHGFI_ICON);
Drawicon(canvas.handle,5,170,FileInfo.hIcon);
form1.repaint;
//获取文件属性
attributes := GetFileAttributes(PChar(FileName));
attrs := '';
If Bool(attributes and FILE_ATTRIBUTE_READONLY) then attrs := attrs + 'R';
If Bool(attributes and FILE_ATTRIBUTE_HIDDEN) then attrs := attrs + 'H';
If Bool(attributes and FILE_ATTRIBUTE_SYSTEM) then attrs := attrs + 'S';
If Bool(attributes and FILE_ATTRIBUTE_ARCHIVE) then attrs := attrs + 'A';
edit4.text := attrs;
// 获取文件最后修改日期和时间
try
edit5.text := DateTimeToSTr(FileDateToDateTime(FileAge(FileName)));
except
// 如果你不是选择文件(如目录或驱动器)
on EConvertError do
edit5.text := 'Not Available';
end;
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
//当你在屏幕上移动窗体时,重画图标
Drawicon(canvas.handle,5,170,FileInfo.hIcon);
end;

相关阅读 >>

Delphi 查找目录下文件(多文件查找)

Delphi 窗体的位置和高宽度-tform:letf、top、width、height、clientwidth、clientheight

Delphi 通过控件句柄获取控件实例

Delphi httpencode编码

Delphi 安卓动态申请权限清单类

Delphi'控件的相对坐标与屏幕坐标转换

Delphi转换 tcolor 到 html 颜色串

Delphi获取系统特殊文件夹路径

Delphi 比较两个位图是否相同

Delphi dll初始化和退出处理

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...