知识大全 文件管理(二)[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

相关参考

知识大全 文件管理(二)[1]

DELPHI基础教程:文件管理(二)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  记录的

知识大全 文件管理(二)[2]

DELPHI基础教程:文件管理(二)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  对话框

知识大全 文件管理(一)[3]

DELPHI基础教程:文件管理(一)[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  记录文

知识大全 文件管理(三)[3]

DELPHI基础教程:文件管理(三)[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  没有办

知识大全 管理和维护ORACLE控制文件

管理和维护ORACLE控制文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  控制文件是一个二进

知识大全 数据结构考研分类复习真题 第十一章 文件[3]

  二判断题  文件是记录的集合每个记录由一个或多个数据项组成因而一个文件可看作由多个记录组成的数据结构【长沙铁道学院一(分)】  倒排文件是对次关键字建立索引【南京航空航天大学一(分)】  倒排序文

知识大全 文件 - 索引顺序文件 - VSAM文件 (二)

文件-索引顺序文件-VSAM文件(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  VSAM文

知识大全 文件 - 索引顺序文件 - ISAM文件(二)

文件-索引顺序文件-ISAM文件(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ISAM文

知识大全 文件 - 文件的基本概念(二)

  文件的逻辑结构及操作  文件的逻辑结构  文件可看成是以记录为数据元素的一种线性结构  文件上的操作主要有两类检索和维护  ()检索  检索即在文件中查找满足给定条件的记录它既可以按记录的逻辑号(

知识大全 文件 - 索引文件(二)

  索引文件的操作  检索操作  检索分两步进行  ①将外存上含有索引区的页块送人内存查找所需记录的物理地址  ②将含有该记录的页块送人内存  注意  ①索引表不大时索引表可一次读入内存在索引文件中检