一、目录的操作 目录的操作比较简单,仅仅是介绍对目录的操作,起不到实际教学的目的我们这一讲,结合目录的操作,文件的属性来实战编写一个搜索目录的小程序,这里面用到的技术在我们的软件开发过程中,经常能够遇到,下面我们就来说一说关于delphi学习技术路线?我们一起去了解并探讨一下这个问题吧!

delphi学习技术路线(DELPHI学习之目录操作)

delphi学习技术路线

一、目录的操作

目录的操作比较简单,仅仅是介绍对目录的操作,起不到实际教学的目的。我们这一讲,结合目录的操作,文件的属性来实战编写一个搜索目录的小程序,这里面用到的技术在我们的软件开发过程中,经常能够遇到。

1、创建一个目录: function CreateDir(const Dir:string):Boolean; 例如:CreateDir('c:\Tem');注,不能多级目录创建,创建成功返回TRUE,失败返回FALSE。

2、检测指定的目录是否存在 function DirectoryExists(name:string):Boolean

3、多级创建目录 function ForceDirectories(dir:string):Boolean; (要引入 FileCtrl 单元文件)

4、获取当前目录的绝对路径 function GetCurrentDir:string;

5、获取指定驱动器中当前目录 procedure GetDir(d:Byte,s:string);

d的取值 0为当前驱动器,1为A盘,2为B盘, 3为C盘

6、让用户选择一个目录:function SelectDirectory(const Caption: string; const Root: WideString;

out Directory: string): Boolean; overload;

7、改变当前的路径进入一个目录 procedure ChDir(S: String);

8、删除一个空的子目录 procedure RmDir(S: String); 如果目录不存在,或者非空,都会引发一个I/O错误。

9、删除一个存在的空目录 funciton RemoveDir(S: String): Boolean; 删除成功返回TRUE,失败返回FALSE。

二、对文件的检索

使用API函数,会用到WIN32_FIND_DATA结构

1、FindFirstFile,带有两个参数,第一是要检查的,带有文件扩展名的路径,函数将在这个路径下面检索符合扩展名要求的文件,例如*.jpg, *.txt或者*.*等等, 第二个参数是一个WIN32_FIND_DATA结构,调用成功则返回一个搜索句柄

2、FindNextFile,也带有两个参数,第一个FindFirstFile返回的句柄,第二个参数仍然是一个WIN32_FIND_DATA结构,调用成功返回TRUE,失败返回FALSE

3、CloseHandle,只有一个参数,就是FindFirstFile返回的句柄。

使用Delphi自身封装的函数

1、FindFirst,搜索第一个符合条件的文件,带有三个参数,

第一个是包含搜索路径和文件名(可以带有统配符)的字符串

第二个是要搜索文件的属性(faReadOnly只读文件,faHidden隐藏文件,faSysFile系统文件,faVolume卷标文件,faDirectory目录,faArchive归档文件,faAnyFile任意文件)

第三个是TSearchRec结构的引用

该函数执行成功返回0,否则返回一个错误码

2、FindNext 搜索下一个符合条件的文件 带有一个参数 既TSearchRec结构的引用。执行成功返回0,否则返回一个错误码

3、FindClose 关闭搜索,释放FindFirst分配的内存。

SHFileOperation函数,这个函数原型声明在ShellApi单元文件中。属于Windows的API函数。该函数功能强大,可能实现文件或目录的拷贝,移动,重命名,删除等操作。

这个函数只有 SHfileOperation(TSHFILEOPSTRUCT)只有一个参数,是一个TSHFileOpStruct结构,该结构的定义如下:

Hwnd //显示状态信息窗口的句柄,一般是设为应用程序的主窗体,或者某一个子窗体的句柄

wFunc //要执行的操作 取值:FO_COPY 复制 FO_MOVE 移动 FO_DELETE 删除

pFrom //源文件或目录

pTo //目标文件或目录

fFlag //控制文件操作的标志 我们可以把它设为以下的内容:

FOF_SILENT---不创建进度条

FOF_SIMPLEPROGRESS---- 显示进度条对话框但不显示文件名

FOF_NOCONFIRMATION-----操作过程中不显示确认信息,相当与用户选择了"Yes to all"

FOF_NOCONFIRMMKDIR 创建目录的时候不显示确认信息,直接就创建了

FOF_RENAMEONCOLLISION 移动复制的时候如果名字重名,自动分配新名字

FOF_ALLOWUNDO 准许撤销操作

FOF_FILESONLY 只对文件(不是目录)进行操作。

fAnyOperationsAborted //Boolean值,为真,则表示有任意异常都将取消操作,为假,则忽略所有异常

hNameMappings //文件名映射对象的句柄,很少用到,一般取nil

lpszProgressTitle //进度条标题,注意仅在fFlag中指定了FOF_SIMPLEPROGRESS时才有效.

函数返回值为0表示操作成功

,