知识大全 文件管理(二)[3]
Posted 文件
篇首语:观书散遗帙,探古穷至妙。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 文件管理(二)[3]相关的知识,希望对你有一定的参考价值。
DELPHI基础教程:文件管理(二)[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
函数NotInList用于判断待添加的字符串是否已存在于一个TStrings对象中 函数返回一个布尔型变量
NotInList的具体实现如下
Function TFileCtrForm NotInList(FileName: String;Items: TStrings) Boolean;
var
i: Integer;
begin
for I := to Items Count do
if Items[i] = FileName then
begin
NotInList := False;
Exit;
end;
NotInList := True;
end;
按指定匹配字符串显示当前目录中的文件
当在FileEdit中输入一个匹配字符串 并回车 文件列表框将显示匹配结果 这一功能在FileEdit的OnKeyPress事件中实现
procedure TFileCtrForm FileEditKeyPress(Sender: TObject; var Key: Char)
begin
if Key = # then
begin
FileListBox ApplyFilePath(FileEdit Text)
Key := # ;
end;
end;
文件列表框提供的ApplyFilePath方法是解决这一问题的关键所在
按指定匹配字符串查找当前目录中的文件
为了进行比较 我们用另一种方法来实现文件的查找功能 即利用标准过程FindFirst FindNext FileList 与ListBox 中的内容完全一致
当用户单击 查找 按钮时 与FileEdit 中字符串相匹配的文件将显示在ListBox 中 下面是实现代码
procedure TFileCtrForm Button Click(Sender: TObject)
var
i: Integer;
SearchRec: TSearchRec;
begin
Searched := True;
Label Caption := Search Result ;
ListBox Items Clear;
FindFirst(FileEdit text faAnyFile SearchRec)
ListBox Items Add(SearchRec Name)
Repeat
i := FindNext(SearchRec)
If i = then
ListBox Items Add(SearchRec Name)
until i <> ;
end;
SearchRec是一个TSearchRec类型的记录 TSearchRec的定义如下
TSearchRec = record
Fill: array[ ] of Byte;
Attr: Byte;
Time: Longint;
Size: Longint;
Name: string[ ];
end;
在这一结构中提供了很多信息 灵活应用将给编程带来很大方便 下面我们举几个例子
检测给定文件的大小
function GetFileSize(const FileName: String) LongInt;
var
SearchRec: TSearchRec;
begin
if FindFirst(ExpandFileName(FileName) faAnyFile SearchRec) = then
Result := SearchRec Size
else
Result := ;
end;
这一程序将在下一节中应用
获取给定文件的时间戳 事实上等价于FileAge函数
function GetFileTime(const FileName: String) Longint;
var
SearchRec: TSearchRec;
begin
if FindFirst(ExpandFileName(FileName) faAnyFile SearchRec) = then
Result := SearchRec Time
else
Result := ;
end;
检测文件的属性 如果文件具有某种属性 则
SearchRec Attr And GivenAttr >
属性常量对应的值与意义如下表
表 属性常量对应的值与意义
━━━━━━━━━━━━━━━━━━━━
常量 值 描述
─────────────────────
faReadOnly $ 只读文件
faHidden $ 隐藏文件
faSysFile $ 系统文件
faVolumeID $ 卷标文件
faDirectory $ 目录文件
faArchive $ 档案文件
faAnyFile $ F 任何文件
━━━━━━━━━━━━━━━━━━━━
文件管理综合举例 文件管理器的实现
在本章的最后 我们利用Delphi提供的文件控件和文件管理函数开发一个简单的文件管理器 虽然这一文件管理器还无法和Windows提供的文件管理器相比拟 但它也为一般的文件操作提供了足够多的功能 而且如果读者感兴趣 还可以对它做进一步的扩充 在后边的拖放操作一章中 我们就为它提供了拖放支持 使它看起来更象一个 文件管理器
设计基本思路
窗口设计
文件管理器的主窗口是一个多文档界面(MDI) 有关文件 目录的显示和文件管理功能的实现都放在子窗口中 在程序执行过程中将根据需要弹出一些完成不同操作的对话框 这些对话框都是在需要时动态生成的 表 给出了本程序所设计窗体的清单
表 FileManger窗体清单
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
窗体类 功能 用于创建该类窗体的菜单项
──────────────────────────────────────
TFileManager 主窗口
TFMForm 子窗口 Windows|New Window
TFileAttrForm 显示文件属性 File|Properties;Function|Search
TChangeForm 文件移动 拷贝 改名 改变 File|Move Cope Rename 当前目录等操作的输入对话框 Directory|change Directory
TSearchForm 输入待查找文件的名称和路径 Function|Search
TDiskViewForm 显示磁盘信息 Function|Disk View
TViewDir 输入待创建的子目录 Directory|CreateDirectory
TAboutBox 显示版权信息 Help|About
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
界面设计
主窗口界面主要是主菜单和用于表示当前目录 当前文件的状态条
表 主窗口界面设计
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
部件 属性 功能
─────────────────────────────
FileManager Style=fsMDI 主窗口
WindowMenu=Windows
Position=poDefault
MainMenu 主菜单
FilePanel Align=alBottom 显示当前选中文件
BevelInner=bvLowered
BevelWidth=
DirectoryPanel Align=alBottom 显示当前选中目录
Alignment=taLeftJustify
BevelInner=bvLowered
BevelWidth=
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
主窗口主菜单包括File WIndows Help三项 File菜单项在子窗口生成时被子窗口同名菜单项所取代 设置Windows Help的GroupIndex = 可以使子窗口生成时这两个菜单项仍存在
子窗口界面包括主菜单 目录树(DirectoryOutline) 文件列表框 用于显示驱动器的标签集(TabSet)以及三个用于显示驱动器类型的TImage部件
表 子窗口界面设计
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
部件 属性 功能
───────────────────────────────────────
FMForm ActiveControl=DirectoryOutline 子窗口
Position=poDefault
Style=fsMDIChild
MainMenu 主菜单
DriveTabSet Align=alTop 显示驱动器
style=tsOwnerDraw
DirectoryOutline Align=alLeft 显示当前驱动器的目录树
options=[ooDrawTreeRoot
ooDrawFocusRect ooStretchBitmaps]
FileList Align=alClient 显示当前目录中的文件
FileType=[ftReadOnly
ftHidden ftSystem ftArchive ftNormal]
ShowGlyphs=True
Neork(Image) Picture(Neork bmp) 标志网络驱动器
Vsible=False
Floppy(Image) Picture(Floppy bmp) 标志软驱
Visible=False
Fixed(Image) Picture(Fixed bmp) 标志硬驱
Visible=False
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
cha138/Article/program/Delphi/201311/25238相关参考
DELPHI基础教程:文件管理(二)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 记录的
DELPHI基础教程:文件管理(二)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 对话框
DELPHI基础教程:文件管理(一)[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 记录文
DELPHI基础教程:文件管理(三)[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 没有办
管理和维护ORACLE控制文件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 控制文件是一个二进
二判断题 文件是记录的集合每个记录由一个或多个数据项组成因而一个文件可看作由多个记录组成的数据结构【长沙铁道学院一(分)】 倒排文件是对次关键字建立索引【南京航空航天大学一(分)】 倒排序文
文件-索引顺序文件-VSAM文件(二) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! VSAM文
文件-索引顺序文件-ISAM文件(二) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ISAM文
文件的逻辑结构及操作 文件的逻辑结构 文件可看成是以记录为数据元素的一种线性结构 文件上的操作主要有两类检索和维护 ()检索 检索即在文件中查找满足给定条件的记录它既可以按记录的逻辑号(
索引文件的操作 检索操作 检索分两步进行 ①将外存上含有索引区的页块送人内存查找所需记录的物理地址 ②将含有该记录的页块送人内存 注意 ①索引表不大时索引表可一次读入内存在索引文件中检