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表示操作成功
,