Welcome

首页 / 软件开发 / Delphi / 第六章-文件管理(三)(5)

第六章-文件管理(三)(5)2007-05-076.4.6.3 改变显示文件的类型

改变显示文件的类型事实上是设置FileList的Mask属性。我们利用一个标准的InputBox输入文件的匹配字符串。而后利用Update方法更新FileList。

procedure TFMForm.Viewtype1Click(Sender: TObject);

var

FileMask: String;

begin

FileMask := InputBox("File type","Input File type For View :",FileList.Mask);

If FileMask = "" then FileMask := "*.*";

FileList.Mask := FileMask;

FileList.Update;

CreateCaption;

end;

其中的CreateCaption私有过程将在(6.4.8)中进行介绍。

6.4.7 目录管理功能的实现

在子窗口的Directory菜单中,提供了目录管理功能:

● Create Directory :创建一个子目录

● Delete Directory :删除一个空的子目录

● Change Directory :改变当前目录

6.4.7.1 创建目录

创建目录时首先弹出一个TNewDir类型的对话框

对话框中要求用户输入目录名。如果用户不输入路径,则缺省认定为当前目录的子目录:

Dir := ExpandFileName(DirName.Text);

而后调用MkDir函数。在目录创建过程中关闭了I/O错误检测,出错不产生异常而是把IOResult设置为非零值。通过检查IOResult是否为0可以确定创建是否成功。

程序清单如下:

procedure TFMForm.CreateDirectory1Click(Sender: TObject);

var

NewDir: TNewDir;

Dir: String;

begin

{$I-}

NewDir := TNewDir.Create(self);

with NewDir do

begin

CurrentDir.Caption := DirectoryOutline.Directory;

if (ShowModal <> idCancel) and (DirName.Text <> "") then

Dir := ExpandFileName(DirName.text);

end;

MkDir(Dir);

if IOResult <> 0 then

MessageDlg("Cannot Create directory", mtWarning, [mbOk], 0);

end;

但不幸的是目录创建后我们却无法从当前目录树中看到。必须移到另一个驱动器而后再返回,创建的目录才是可见的。在后边我们将提供一种解决方法。