delphi 文件存取方法与文件管理组件

9.2  文件存取方法与文件管理组件

 

9.2.1  存取文件的类方法

Delphi在许多需要与文件打交道的类中定义了文件存取方法,使用这些方法可以非常方便地将类中的数据保存到文件中,或从文件中读取所需的数据。

1.LoadFromFile和SaveToFile方法

LoadFromFile( )和SaveToFile( )是直接存取文件的类方法。声明如下:

procedure LoadFromFile(const fileName:string);

procedure SaveToFile(const fileName:string);

其中,fileName参数指明包含路径的文件全名。LoadFromFile( )方法从fileName指定的文件中读取数据,

SaveToFile( )方法将数据写到fileName指定的文件中。

2.拥有存取文件方法的类

拥有LoadFromFile( )和SaveToFile( )方法的常用类如下:

(1)TStrings。

TStrings类中的LoadFromFile( )和SaveToFile( )方法处理文本文件。

     因为TStrings类中保存的是多行的字符串数据,而文本文件也保存多行的字符串数据。如TMemo.Lines属性类型就是TStrings类,调用下列方法,可以读入指定文本文件的内容,并显示在Memo1组件中。

Memo1.Lines.LoadFromFile(fileName);

(2)TGraphic和TPicture。

TGraphic类是许多图像处理类的父类。在TGraphic类中定义的LoadfromFile( )和SaveToFile( )方法只是虚方法,并不能直接存取图像文件,但其子类(如TBitmap、TIcon和TJPEGImage等)都覆盖了这两个方法,以处理不同格式的图像文件。例如:

var bmp1:TBitmap;

bmp1:=TBitmap.Create;

bmp1.LoadFromFile(fileName);                               //只能读入BMP图像

TPicture类中也有LoadFromFile( )和SaveToFile( )方法,它们与TGraphic中的文件处理方法不同的是,根据图像文件的后缀名,自动选择合适的文件类型保存或读取图像文件。例如,下列语句可以读入多种格式的图像文件:

Image1.Picture.LoadFromFile(fileName);                //能够读入多种格式图像

(3)TTreeView。

TreeView组件中保存的树型结构的所有节点,按树的横向凹入表示法存放在一个文本文件中,

调用LoadFromFile( )方法从指定文本文件中读入树的所有节点及其结构,SaveToFile( )方法将树的所有节点按树的横向凹入表示法写入指定文本文件中。例如:

TreeView1.LoadFromFile(filename);              //从指定文本文件中读取所有节点

由上述讨论可见,不同类的对象调用LoadFromFile( )和SaveToFile( )方法时,需要各自特定类型的文件,否则就会出错。

9.2.2  文件管理组件

文件管理组件用于对文件、目录(文件夹)进行操作,

  包括DriveComboBox(驱动器组合框)、DirectoryListBox(目录列表框)、FileListBox(文件列表框)、FilterComboBox(文件过滤器组合框),它们均位于Win3.1选项卡上。

1.Win3.1选项卡上的文件管理组件

(1)驱动器组合框(DriveComboBox)。

DriveComboBox由显示框和下拉列表框组成。程序运行时,显示框默认显示当前驱动器;下拉列表框将自动搜索并列出系统可用驱动器的盘符,用户可从中选择并切换当前驱动器,选中的驱动器将出现在显示框中。

DriveComboBox的主要属性如下所示。

·    DirList属性:指定关联的目录列表框。

·    Drive运行时属性:返回或设置运行时选择的驱动器。默认值为当前驱动器。

例如,下列语句设置D为当前驱动器:

DriveComboBox1.Drive:='d';

DriveComboBox的主要事件有OnChange事件。当用户在DriveComboBox的下拉列表中选择一个驱动器时触发OnChange事件,系统将自动更新由DirList显示的与DriveComboBox相关联的目录列表框DirectoryListBox中的目录。

(2)目录列表框(DirectoryListBox)。

DirectoryListBox显示当前驱动器的目录结构。根目录显示在第一行,每行显示一个目录,子目录按层次关系依次缩进。当前目录图标为打开的文件夹,子目录图标为关闭的文件夹,当前目录的上级目录图标为不带阴影的打开的文件夹。

DirectoryListBox的主要属性如下所示。

·    FileList属性:指定关联的文件列表框。

·    DirLabel属性:记录当前的目录路径,通常与一个Label相关联。

·    Drive运行时属性:返回或设置当前选中的驱动器。

·    Directory运行时属性:返回或设置当前选中的目录。

例如,下列赋值使“桌面”成为当前目录:

DirectoryListBox1.Directory:='c:WindowsDesktop';

DirectoryListBox的主要事件有OnChange事件。当选中目录改变时,触发OnChange事件。

(3)文件列表框(FileListBox)。

FileListBox显示当前目录中的文件和子目录,当前目录由目录列表框的Directory属性指定。FileListBox是“驱动器—目录—文件”链中的最后一环。

FileListBox主要属性如下。

·    FileEdit属性:指定关联的文件名编辑框。

·    MultiSelect属性:当取值为True时允许选定多个文件,默认值为False。

·    Drive运行时属性:返回当前选中文件所在的驱动器。

·    Directory运行时属性:返回当前选中文件所在的目录。

·    FileName运行时属性:返回当前选中文件的文件名。

·    FileType属性:指定显示文件属性的类型,有只读、隐藏等。

TFileType定义为元素类型是枚举型的集合类型,声明如下:

type TFileAttr=(ftReadOnly,ftHidden,ftSystem,

                   ftVolumeID,ftDirectory,ftArchive,ftNormal);

      TFileType=set of TFileAttr;

其中,FileType的默认值是[ftNormal]。通过设置FileType子属性的值,决定在FileListBox中显示的文件属性。例如,将子属性ftHidden设为True,FileType的值变为[ftHidden,ftNormal],则可显示隐藏文件。

(4)文件过滤组合框(FilterComboBox)。

FilterComboBox设置文件类型过滤器,使文件列表框仅能显示指定类型的文件。主要属性如下所示。

·    FileList属性:指定关联的文件列表框。

·    Filter属性:设置允许显示的文件类型。Filter属性编辑器的操作与OpenDialog的Filter属性操作类似。

以上4种组件能够自动从系统中获取所需要信息,通常将这几个组件组合起来使用,使得文件操作非常方便和灵活。但还有欠缺之处,例如,想用鼠标轻松地选取一个网络文件,使用驱动器列表框就无能为力了,此时可以通过公共对话框组件OpenDialog、SaveDialog来完成打开文件、保存文件等操作。

2.Samples选项卡上的文件管理组件

在Samples选项卡上,有3个功能更强的文件管理组件:ShellTreeView、ShellListView和ShellComboBox。它们的显示风格分别类似于TreeView、ListView和ComboBox。使用这三者可以用来设计类似Windows的资源管理器。

原文地址:https://www.cnblogs.com/guorongtao/p/4446604.html