首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC 教學

BCB 內建檔案操作庫函數詳解 (三大類:檔名、管理、I/O)

     編輯:VC 教學

前言

C++ Builder 提供一組緊密整合 VCL/RTL 的檔案操作函數,支援 AnsiString,使用最便利。分為三類:

一、檔名/路徑處理函數

函數說明
ExpandFileName取得完整路徑 (含磁碟機、目錄)
ExtractFileExt擷取副檔名
ExtractFileName擷取檔名 (不含路徑)
ExtractFilePath擷取目錄路徑
ExtractFileDir擷取目錄名
ExtractFileDrive擷取磁碟機代號
ChangeFileExt變更副檔名
ExpandUNCFileName取得 UNC 網路完整路徑
ExtractRelativePath擷取相對路徑
ExtractShortPathName轉換為 8.3 短檔名
MatchesMask檢查檔名是否符合萬用字元遮罩

範例:ExpandFileName

extern PACKAGE AnsiString __fastcall ExpandFileName(const AnsiString FileName);
// 回傳完整路徑
ShowMessage(ExpandFileName(Application->ExeName)); // 顯示如 C:\MyBCB\Sample1.EXE

二、檔案管理函數

  • FileExists, DirectoryExists
  • ForceDirectories (遞迴建立目錄)
  • DeleteFile, RenameFile
  • FileCopy (支援覆蓋選項)
  • FileAge (取得修改時間, -1 表不存在)
  • FileGetAttr/SetAttr (屬性: 隱藏、唯讀、系統、存檔)
  • DiskFree/Size (磁碟剩餘/總空間)

三、檔案 I/O 函數 (低階 Handle)

  • FileOpen (mode: fmOpenRead, fmOpenWrite, fmOpenReadWrite, fmShareExclusive...)
  • FileCreate
  • FileRead/Write (Handle, Buffer, Count)
  • FileSeek (Handle, Offset, Origin)
  • FileClose

回傳值:Handle (>=0 成功), -1 失敗。需自行管理緩衝區與錯誤檢查。

進階:TFileStream (推薦)

封裝上述 Handle 操作,支援 RAII、例外安全、流式讀寫 (ReadBuffer/WriteBuffer、Seek、Position、Size)、可掛接 TStream 衍生類。範例:

TFileStream *fs = new TFileStream("data.bin", fmCreate | fmShareDenyWrite);
try {
    fs->WriteBuffer(&myStruct, sizeof(myStruct));
} __finally { delete fs; }

總結:簡單路徑操作用檔名函數;管理用管理函數;資料讀寫優先用 TFileStream,僅在需精細控制共享模式或極致效能時用低階 FileOpen/Read/Write。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved