天天看點

Delphi 檔案目錄函數大全

函數 function FileOpen(const FileName: string; Mode: LongWord): Integer; $[SysUtils.pas

功能 傳回打開檔案夾

說明 Mode指定打開檔案的模式(fmOpenRead,fmOpenWrite,fmOpenReadWrite....);打開失敗則傳回負數

參考 function Windows.CreateFile

例子

///Begin FileOpen,FileClose

procedure TForm1.Button1Click(Sender: TObject);

var

I: Integer;

begin

I := FileOpen(Edit1.Text, fmOpenRead);

CheckBox1.Checked := I > 0;

FileClose(I);

end;

///Begin FileOpen,FileClose

━━━━━━━━━━━━━━━━━━━━━

函數 function FileCreate(const FileName: string): Integer; overload; $[SysUtils.pas

函數 function FileCreate(const FileName: string; Rights: Integer): Integer; overload; $[SysUtils.pas

功能 傳回建立檔案

說明 建立失敗則傳回負數

參考 function Windows.CreateFile

例子

///Begin FileCreate

procedure TForm1.Button1Click(Sender: TObject);

var

I: Integer;

begin

I := FileCreate(Edit1.Text);

CheckBox1.Checked := I > 0;

FileClose(I);

end;

///End FileCreate

━━━━━━━━━━━━━━━━━━━━━

函數 function FileRead(Handle: Integer; var Buffer; Count: LongWord): Integer; $[SysUtils.pas

功能 傳回讀取檔案緩沖區的大小

說明 讀取失敗則傳回負數

參考 function Windows.ReadFile

例子

━━━━━━━━━━━━━━━━━━━━━

函數 function FileWrite(Handle: Integer; const Buffer; Count: LongWord): Integer; $[SysUtils.pas

功能 傳回寫入檔案緩沖區的大小

說明 寫入失敗則傳回負數

參考 function Windows.WriteFile

例子

━━━━━━━━━━━━━━━━━━━━━

函數 function FileSeek(Handle, Offset, Origin: Integer): Integer; overload; $[SysUtils.pas

函數 function FileSeek(Handle: Integer; const Offset: Int64; Origin: Integer): Int64; overload; $[SysUtils.pas

功能 傳回指定檔案偏移量

說明 Offset指定偏移量;Origin指定原點(Origin為0時指檔案首;為1時指目前位置;為2時指檔案尾)

參考 function Windows.SetFilePointer

例子

━━━━━━━━━━━━━━━━━━━━━

函數 procedure FileClose(Handle: Integer); $[SysUtils.pas

功能 傳回關閉檔案

說明 不關閉打開的檔案會占用系統資源

參考 function Windows.CloseHandle

例子

━━━━━━━━━━━━━━━━━━━━━

函數 function FileAge(const FileName: string): Integer; $[SysUtils.pas

功能 傳回檔案建立的時間

說明 檔案不存在則傳回-1

參考 function Windows.FindFirstFile

例子

///Begin FileAge,DateTimeToStr,FileDateToDateTime

procedure TForm1.Button1Click(Sender: TObject);

begin

SpinEdit1.Value := FileAge(Edit1.Text);

if SpinEdit1.Value > 0 then

Edit2.Text := DateTimeToStr(FileDateToDateTime(SpinEdit1.Value));

end;

///End FileAge,DateTimeToStr,FileDateToDateTime

━━━━━━━━━━━━━━━━━━━━━

函數 function FileExists(const FileName: string): Boolean; $[SysUtils.pas

功能 傳回檔案名FileName是否有實體存在

說明 包括隐藏檔案

參考 function SysUtils.FileAge

例子 CheckBox1.Checked := FileExists(Edit1.Text);

━━━━━━━━━━━━━━━━━━━━━

函數 function DirectoryExists(const Directory: string): Boolean; $[SysUtils.pas

功能 傳回目錄名FileName是否有實體存在

說明 包括隐藏目錄

參考 function Windows.GetFileAttributes

例子 CheckBox1.Checked := DirectoryExists(Edit1.Text);

━━━━━━━━━━━━━━━━━━━━━

函數 function ForceDirectories(Dir: string): Boolean; $[SysUtils.pas

功能 傳回建立子目錄是否成功

說明 直接建立多級目錄

參考 function SysUtils.CreateDir

例子 CheckBox1.Checked := ForceDirectories(Edit1.Text);

━━━━━━━━━━━━━━━━━━━━━

函數 function FindFirst(const Path: string; Attr: Integer; var F: TSearchRec): Integer; $[SysUtils.pas

功能 傳回設定檔案搜尋

說明 搜尋成功則傳回0

參考 function Windows.FindFirstFile

例子

///Begin FindFirst,FindNext,FindClose

procedure TForm1.Button1Click(Sender: TObject);

var

vSearchRec: TSearchRec;

I: Integer;

begin

Memo1.Clear;

I := FindFirst(Edit1.Text, faAnyFile, vSearchRec);

while I = 0 do begin

Memo1.Lines.Add(vSearchRec.Name);

I := FindNext(vSearchRec);

end;

FindClose(vSearchRec);

end;

///End FindFirst,FindNext,FindClose

函數 function FindNext(var F: TSearchRec): Integer; $[SysUtils.pas

功能 傳回繼續檔案搜尋

說明 搜尋成功則傳回0

參考 function Windows.FindNextFile

例子

━━━━━━━━━━━━━━━━━━━━━

函數 procedure FindClose(var F: TSearchRec); $[SysUtils.pas

功能 結束目前檔案搜尋

說明 不關閉查詢會占用系統資源

參考 function Windows.FindClose

例子

━━━━━━━━━━━━━━━━━━━━━

函數 function FileGetDate(Handle: Integer): Integer; $[SysUtils.pas

功能 傳回檔案的修改時間

說明 讀取失敗則傳回-1

參考 function Windows.GetFileTime

例子

///Begin FileGetDate

procedure TForm1.Button1Click(Sender: TObject);

var

I: Integer;

begin

I := FileOpen(Edit1.Text, fmOpenRead);

if I < 0 then Exit;

SpinEdit1.Value := FileGetDate(I);

Edit2.Text := DateTimeToStr(FileDateToDateTime(SpinEdit1.Value));

FileClose(I);

end;

///End FileGetDate

━━━━━━━━━━━━━━━━━━━━━

函數 function FileSetDate(const FileName: string; Age: Integer): Integer; overload; $[SysUtils.pas

函數 function FileSetDate(Handle: Integer; Age: Integer): Integer; overload; platform; $[SysUtils.pas

功能 傳回設定檔案的修改時間

說明 修改成功則傳回0

參考 function Windows.SetFileTime

例子 SpinEdit1.Value := FileSetDate(Edit1.Text, DateTimeToFileDate(StrToDateTime(Edit2.Text)));

━━━━━━━━━━━━━━━━━━━━━

函數 function FileGetAttr(const FileName: string): Integer; platform; $[SysUtils.pas

功能 傳回檔案的屬性

說明 讀取失敗則傳回$FFFFFFFF

參考 function Windows.GetFileAttributes

例子 SpinEdit1.Value := FileGetAttr(Edit1.Text);

━━━━━━━━━━━━━━━━━━━━━

函數 function FileSetAttr(const FileName: string; Attr: Integer): Integer; platform; $[SysUtils.pas

功能 傳回設定檔案的屬性

說明 設定成功則傳回0

參考 function Windows.SetFileAttributes

例子 SpinEdit1.Value := FileSetAttr(Edit1.Text, SpinEdit2.Value);

━━━━━━━━━━━━━━━━━━━━━

函數 function FileIsReadOnly(const FileName: string): Boolean; $[SysUtils.pas

功能 傳回檔案是否隻讀

說明 檔案不存在看作隻讀

參考 function Windows.GetFileAttributes

例子 CheckBox1.Checked := FileIsReadOnly(Edit1.Text);

━━━━━━━━━━━━━━━━━━━━━

函數 function FileSetReadOnly(const FileName: string; ReadOnly: Boolean): Boolean; $[SysUtils.pas

功能 傳回設定檔案是否隻讀是否成功

說明 檔案不存在則傳回False

參考 function Windows.GetFileAttributes;function Windows.SetFileAttributes

例子 CheckBox1.Checked := FileSetReadOnly(Edit1.Text, CheckBox2.Checked);

━━━━━━━━━━━━━━━━━━━━━

函數 function DeleteFile(const FileName: string): Boolean; $[SysUtils.pas

功能 傳回删除檔案是否成功

說明 檔案不存在則傳回False

參考 function Windows.DeleteFile

例子 CheckBox1.Checked := DeleteFile(Edit1.Text);

━━━━━━━━━━━━━━━━━━━━━

函數 function RenameFile(const OldName, NewName: string): Boolean; $[SysUtils.pas

功能 傳回重命名檔案是否成功

說明 檔案不存在則傳回False

參考 function Windows.MoveFile

例子 CheckBox1.Checked := RenameFile(Edit1.Text, Edit2.Text);

━━━━━━━━━━━━━━━━━━━━━

函數 function ChangeFileExt(const FileName, Extension: string): string; $[SysUtils.pas

功能 傳回改變擴充名後的檔案名

說明 [注意]擴充名Extension前要加點;ChangeFileExt(’a.jpg’, ‘bmp’)=’abmp’

參考 function SysUtils.LastDelimiter;function System.Copy

例子 Edit1.Text := ChangeFileExt(Edit2.Text, Edit3.Text);

━━━━━━━━━━━━━━━━━━━━━

函數 function ExtractFilePath(const FileName: string): string; $[SysUtils.pas

功能 傳回檔案名所在的路徑

說明 ExtractFilePath('C:/')='C:/';ExtractFilePath('//Server/Tool/Calc.exe')='//Server/Tool/'

參考 function SysUtils.LastDelimiter;function System.Copy

例子 Edit1.Text := ExtractFilePath(Edit2.Text);

━━━━━━━━━━━━━━━━━━━━━

函數 function ExtractFileDir(const FileName: string): string; $[SysUtils.pas

功能 傳回檔案名所在的目錄

說明 ExtractFileDir('C:/')='C:/';ExtractFileDir('//Server/Tool/Calc.exe')='//Server/Tool'

參考 function SysUtils.LastDelimiter;function System.Copy

例子 Edit1.Text := ExtractFileDir(Edit2.Text);

━━━━━━━━━━━━━━━━━━━━━

函數 function ExtractFileDrive(const FileName: string): string; $[SysUtils.pas

功能 傳回檔案名所在驅動器

說明 ExtractFileDrive('C:/')='C:';ExtractFileDrive('//Server/Tool/Calc.exe')='//Server/Tool'

參考 function System.Copy

例子 Edit1.Text := ExtractFileDrive(Edit2.Text);

━━━━━━━━━━━━━━━━━━━━━

函數 function ExtractFileName(const FileName: string): string; $[SysUtils.pas

功能 傳回絕對檔案名

說明 ExtractFileName('C:/')='';ExtractFileName('//Server/Tool/Calc.exe')='Calc.exe'

參考 function SysUtils.LastDelimiter;function System.Copy

例子 Edit1.Text := ExtractFileName(Edit2.Text);

━━━━━━━━━━━━━━━━━━━━━

函數 function ExtractFileExt(const FileName: string): string; $[SysUtils.pas

功能 傳回檔案名的擴充名

說明 ExtractFileExt('C:/')='';ExtractFileExt('//Server/Tool/Calc.exe')='.exe'

參考 function SysUtils.LastDelimiter;function System.Copy

例子 Edit1.Text := ExtractFileExt(Edit2.Text);

━━━━━━━━━━━━━━━━━━━━━

函數 function ExpandFileName(const FileName: string): string; $[SysUtils.pas

功能 傳回檔案名的完整表示

說明 ExpandFileName('hello.pas')='C:/Program Files/Borland/Delphi6/Projects/hello.pas'

參考 function Windows.GetFullPathName

例子 Edit1.Text := ExpandFileName(Edit2.Text);

━━━━━━━━━━━━━━━━━━━━━

函數 function ExpandFileNameCase(const FileName: string; out MatchFound: TFilenameCaseMatch): string; $[SysUtils.pas

功能 分情況傳回檔案名的完整表示

說明 type TFilenameCaseMatch = (mkNone, mkExactMatch, mkSingleMatch, mkAmbiguous);

參考 function Windows.GetFullPathName;function SysUtils.SameFileName;function SysUtils.FindFirst

例子

///Begin ExpandFileNameCase

procedure TForm1.Button1Click(Sender: TObject);

var

vFilenameCaseMatch: TFilenameCaseMatch;

begin

Edit1.Text := ExpandFileNameCase(Edit2.Text, vFilenameCaseMatch);

SpinEdit1.Value := Ord(vFilenameCaseMatch);

end;

///End ExpandFileNameCase

━━━━━━━━━━━━━━━━━━━━━

函數 function ExpandUNCFileName(const FileName: string): string; $[SysUtils.pas

功能 傳回LINUX檔案名的完整表示

說明 ExpandUNCFileName('C:/')='C:/'

參考 function SysUtils.ExpandFileName

例子 Edit1.Text := ExpandUNCFileName(Edit2.Text);

━━━━━━━━━━━━━━━━━━━━━

函數 function ExtractRelativePath(const BaseName, DestName: string): string; $[SysUtils.pas

功能 傳回參數的相對路徑

說明 ExtractRelativePath('C:/Windows/', 'C:/Windows/System')='System'

參考 function SysUtils.SameFilename;function SysUtils.ExtractFileDrive

例子 Edit1.Text := ExtractRelativePath(Edit2.Text, Edit3.Text);

━━━━━━━━━━━━━━━━━━━━━

函數 function ExtractShortPathName(const FileName: string): string; $[SysUtils.pas

功能 傳回參數的DOS路徑

說明 ExtractShortPathName('C:/Program Files/Borland')='C:/PROGRA~1/BORLAND'

參考 function Windows.GetShortPathName

例子 Edit1.Text := ExtractShortPathName(Edit2.Text);

━━━━━━━━━━━━━━━━━━━━━

函數 function FileSearch(const Name, DirList: string): string; $[SysUtils.pas

功能 傳回目錄清單中DirList搜尋的第一個結果

說明 FileSearch('Calc.exe', 'd:/winxp/system32;c:/windows')='d:/winxp/system32/calc.exe'

參考 function SysUtils.FileExists;function SysUtils.AnsiLastChar

例子 Edit1.Text := FileSearch(Edit2.Text, Edit3.Text);

━━━━━━━━━━━━━━━━━━━━━

函數 function DiskFree(Drive: Byte): Int64; $[SysUtils.pas

功能 傳回驅動器可用空間

說明 參數Drive為0表示目前路徑,為1表示=A驅,為2表示=B驅...;擷取失敗則傳回-1

參考 function Windows.GetDiskFreeSpaceExA

例子 SpinEdit1.Value := DiskFree(SpinEdit2.Value);

━━━━━━━━━━━━━━━━━━━━━

函數 function DiskSize(Drive: Byte): Int64; $[SysUtils.pas

功能 傳回驅動器全部空間

說明 參數Drive為0表示目前路徑,為1表示=A驅,為2表示=B驅...;擷取失敗則傳回-1

參考 function Windows.GetDiskFreeSpaceExA

例子 SpinEdit1.Value := DiskSize(SpinEdit2.Value);

━━━━━━━━━━━━━━━━━━━━━

函數 function FileDateToDateTime(FileDate: Integer): TDateTime; $[SysUtils.pas

功能 傳回将檔案日期時間類型轉換日期時間類型

說明 FileDate非法是将觸發異常

參考 function SysUtils.EncodeDate;function SysUtils.EncodeTime

例子

━━━━━━━━━━━━━━━━━━━━━

函數 function DateTimeToFileDate(DateTime: TDateTime): Integer; $[SysUtils.pas

功能 傳回将日期時間類型轉換檔案日期時間類型

說明 年份在1980到2107之外則傳回0

參考 function SysUtils.DecodeDate;function SysUtils.DecodeTime

例子

━━━━━━━━━━━━━━━━━━━━━

函數 function GetCurrentDir: string; $[SysUtils.pas

功能 傳回目前操作目錄

說明 [注意]調用檔案對話框會改變目前操作目錄

參考 function System.GetDir

例子 Edit1.Text := GetCurrentDir;

━━━━━━━━━━━━━━━━━━━━━

函數 function SetCurrentDir(const Dir: string): Boolean; $[SysUtils.pas

功能 傳回設定目前操作目錄是否成功

說明 [注意]調用檔案對話框會改變目前操作目錄

參考 function Windows.SetCurrentDirectory

例子 CheckBox1.Checked := SetCurrentDir(Edit1.Text);

━━━━━━━━━━━━━━━━━━━━━

函數 function CreateDir(const Dir: string): Boolean; $[SysUtils.pas

功能 傳回建立目錄是否成功

說明 不支援多級目錄;已經存在則傳回False

參考 function Windows.CreateDirectory

例子 CheckBox1.Checked := CreateDir(Edit1.Text);

━━━━━━━━━━━━━━━━━━━━━

函數 function RemoveDir(const Dir: string): Boolean; $[SysUtils.pas

功能 傳回删除目錄是否成功

說明 必須是空目錄

參考 function Windows.RemoveDirectory

例子 CheckBox1.Checked := RemoveDir(Edit1.Text);