第六章-文件管理(三)(5)2007-05-076.4.6.3 改变显示文件的类型 改变显示文件的类型事实上是设置FileList的Mask属性。我们利用一个标准的InputBox输入文件的匹配字符串。而后利用Update方法更新FileList。 procedure TFMForm.Viewtype1Click(Sender: TObject);varFileMask: String;beginFileMask := 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);varNewDir: TNewDir;Dir: String;begin{$I-}NewDir := TNewDir.Create(self);with NewDir dobeginCurrentDir.Caption := DirectoryOutline.Directory;if (ShowModal <> idCancel) and (DirName.Text <> "") thenDir := ExpandFileName(DirName.text);end;MkDir(Dir);if IOResult <> 0 thenMessageDlg("Cannot Create directory", mtWarning, [mbOk], 0);end;但不幸的是目录创建后我们却无法从当前目录树中看到。必须移到另一个驱动器而后再返回,创建的目录才是可见的。在后边我们将提供一种解决方法。