6.1.4.2 文件定位
Seek :把文件當前位置移到指定部分
FilePos : 返回文件的當前位置
Eoln : 返回行結束標志
EOF : 返回文件結束標志
FileSeek : 改變當前文件指針的位置
Seek與FileSeek的區別是:1. Seek僅用於記錄文件;2. FileSeek的參數是文件句柄、偏移量、起始位置。其中起始位置有文件首、當前位置、文件尾三種選擇。Seek的參數是文件變量、偏移量,偏移量是從文件首開始定位的。3. FileSeek的偏移量以字節數來計算,而Seek是根據記錄號進行移動。
Seek、FilePos僅用於記錄文件。但任何文件都可以看作是基於字節的記錄文件。下面一段程序表示了它們的用法。
{ 該例子的設計界面為一個包含TOpenDialog部件的窗體。}
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 : 刪除一個文件
Truncate :從文件當前位置將文件截斷
Erase與DeleteFile的區別是:Erase以文件變量為參數,當文件不能刪除時引起一個異常;DeleteFile以文件名為參數,當文件不存在或不能刪除時返回False,而並不引起一個異常。
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 :向指定文件寫入數據
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序列
有關文件管理標准過程/函數的更詳細資料,請查閱Delphi相關的Help主題。以上的大部分過程在後面都有應用實例,讀者可以從中體會其用法。
在Delphi的聯機幫助Help系統中把有關文件的過程/函數分為兩個主題:I/O Routine和File_Management Routine。前者大部分以文件變量為操作對象,而後者大部分以文件名或文件句柄為操作對象。這裡為了方便讀者的使用,我們按功能重新進行了分類。在下一節中主要應用I/O Routine主題下的過程,而在第四節的綜合舉例中主要應用File_Management Routine主題下的過程。
另外,Windows提供了許多有關文件管理的API函數。雖然在一般情況下,利用Delphi提供的函數已足夠解決問題,但有時候仍然需要使用Windows API。在(6.4.4.2)中我們就用到了Windows API函數GetDriveType。有關Windows API函數的情況,請讀者參閱相關的資料,這裡不再進行介紹。