6.1.4 Delphi 文件管理標準過程/函數分類詳解(續)
6.1.4.2 文件定位操作
| 函數/過程 | 功能 | 適用範圍/備註 |
| Seek | 移動文件當前位置到指定記錄號 | 僅限記錄文件;參數:文件變量、記錄號(從0開始) |
| FilePos | 返回文件當前記錄號 | 僅限記錄文件 |
| Eof | 返回文件結束標誌 | 文本/記錄文件 |
| Eoln | 返回行結束標誌 | 僅限文本文件 |
| FileSeek | 改變文件指針位置(字節級) | 所有文件;參數:句柄、偏移量、起始位置(文件首/當前/文件尾) |
Seek vs FileSeek 關鍵差異:
Seek 僅用於記錄文件,FileSeek 適用所有文件
FileSeek 參數為句柄,支持三種起始位置;Seek 參數為文件變量,僅從文件首定位
FileSeek 偏移量以字節計,Seek 按記錄號移動
任何文件均可視為基於字節的記錄文件。示例:打開文件,獲取大小,定位至中點,顯示當前位置。
uses Dialogs;
var f: file of Byte; size: Longint; S: String; y: Integer;
begin
if OpenDialog1.Execute then
begin
AssignFile(f, OpenDialog1.FileName);
Reset(f);
size := FileSize(f);
S := 'File size in bytes: ' + IntToStr(size);
y := 10; Canvas.TextOut(5, y, S);
y := y + Canvas.TextHeight(S) + 5;
S := 'Seeking halfway into file...';
Canvas.TextOut(5, y, S);
y := y + Canvas.TextHeight(S) + 5;
Seek(f, size div 2);
S := 'Position is now ' + IntToStr(FilePos(f));
Canvas.TextOut(5, y, S);
CloseFile(f);
end;
end.
6.1.4.3 文件刪除與截斷
| 過程/函數 | 功能 | 差異說明 |
| Erase | 刪除存在的文件 | 參數為文件變量,失敗引發異常 |
| DeleteFile | 刪除文件 | 參數為文件名,失敗返回 False 不引發異常 |
| Truncate | 從當前位置截斷文件 | 常用於刪除記錄後截斷尾部空間 |
6.1.4.4 文件名操作
| 函數 | 功能 |
| Rename | 文件重命名(文件變量) |
| RenameFile | 文件重命名(原名、新名字符串) |
| ChangeFileExt | 修改文件擴展名 |
| ExpandFileName | 返回文件完整路徑名 |
| ExtractFileExt | 提取文件擴展名 |
| ExtractFileName | 從全路徑提取文件名 |
| ExtractFilePath | 提取文件路徑 |
6.1.4.5 文件屬性
FileGetAttr:獲取文件屬性
FileSetAttr:設置文件屬性
6.1.4.6 文件狀態
FileSize:返回文件大小(記錄文件為記錄數,無類型文件為字節數)
IOResult:返回上次 I/O 操作狀態
FileExists:檢測文件是否存在
6.1.4.7 文件日期時間
DateTimeToFileDate:Delphi 日期 → DOS 日期格式
FileDateToDateTime:DOS 日期 → Delphi 日期格式
FileGetDate:獲取文件 DOS 日期時間戳
FileSetDate:設置文件 DOS 日期時間戳
6.1.4.8 文件讀寫
| 過程/函數 | 功能 | 適用對象 |
| Read / Readln | 從文本/記錄文件讀取變量 | 文件變量 |
| Write / Writeln | 寫入變量到文本/記錄文件 | 文件變量 |
| FileRead | 從指定文件讀取(句柄) | 系統內部/文件複製 |
| FileWrite | 向指定文件寫入(句柄) | 系統內部/文件複製 |
6.1.4.9 目錄操作
MkDir:創建子目錄
ChDir:改變當前目錄
GetDir:獲取指定磁盤當前目錄
RmDir:刪除空子目錄
6.1.4.10 磁盤操作
DiskFree:獲取磁盤可用空間
DiskSize:獲取磁盤總大小
6.1.4.11 文件查找
FileSearch:查找目錄中特定文件
FindFirst:查找匹配文件名/屬性的第一個文件(支持通配符)
FindNext:獲取下一個匹配文件
FindClose:終止 FindFirst/FindNext 序列
幫助系統分類與 Windows API 補充
Delphi 聯機幫助將文件過程分為 I/O Routine(文件變量為操作對象)和 File_Management Routine(文件名/句柄為操作對象)兩大主題。本節多屬前者,6.4 節綜合例多用後者。Windows API 提供更底層文件管理函數(如 6.4.4.2 用到的 GetDriveType),一般情況 Delphi 函數已足夠,特殊需求可查閱 API 文檔。
- 上一篇文章: Delphi 記錄文件管理系統設計:任務分析、界面佈局與文件打開創建異常處理
- 下一篇文章: Delphi 文件類型與標準 I/O 過程詳解:文本、記錄、無類型文件操作基礎
Copyright ©
程式碼之家 All Rights Reserved