ExpandFileName 函數 返回包含絕對路徑的字符串
ExtendedSelect 屬性 是否允許存在選擇模式,True時,MultiSelect才有意義
ExtractFileDir 函數 返回驅動器和路徑
ExtractFileExt 函數 返回文件的後綴
ExtractFileName 函數 返回文件名
ExtractFilePath 函數 返回指定文件的路徑
FileAge 函數 返回文件已存在的時間
FileClose 命令 關閉指定的文件
FileCreate 命令 用指定的文件名建立新文件
FileDateToDateTime 函數 將DOS的日期格式轉換為DELPHI的日期格式
FileExists 函數 檢查文件是否存在
FileGatAttr 函數 返回文件的屬性
FileGetDate 函數 返回文件的DOS日期時間標記
FileOpen 命令 用指定的存取模式打開指定的文件
FilePos 函數 返回文件的當前指針位置
FileRead 命令 從指定的文件讀取
FileSearch 命令 在目錄中搜索指定的文件
FileSeek 函數 改變文件的指針
FileSetAttr 函數 設置文件屬性
FileSetDate 函數 設置文件的DOS日期時間標記
FileSize 函數 返回當前文件的大小
FileWrite 函數 對指定的文件做寫操作
RenameFile 函數 對文件重命名
MkDir 建立資料夾
http://delphi.ktop.com.tw/board.php?cid=16&fid=108&tid=23846
抓附檔名範例
if Uppercase(ExtractFileExt(FileListBox1.FileName)) = '.BMG' then
ChangeFileExt(FileName,'.txt'); //更改副檔名
ChangeFileExt(ExtractFileName(FileName),'') //返回文件名 不包含附擋名
//執行檔所在資料夾
ExtractFileDir(Application.ExeName)
//在firemonkey裡是 ParamStr(0)
//抓檔案清單 不含子目錄
procedure GetFileList (Const FileName : String; List : TStrings);
var
H : THandle;
Data: TWIN32FindData;
begin
H := FindFirstFile (PChar (FileName), Data);
if H <> INVALID_HANDLE_VALUE then begin
try
List.Add(Data.cFileName);
while FindNextFile (H, Data) do begin
List.Add(Data.cFileName);
end;
finally
windows.FindClose (H); //delphi7
//winApi.Windows.FindClose(H); //XE10
end;
end;
end;
//抓檔案清單 含子目錄
procedure GetFileList(Const sPath: String);
var
hFind : THandle;
filename, fPath : string;
nSize : Int64;
fd : WIN32_FIND_DATA;
begin
hFind:=Windows.FindFirstFile(PChar(sPath + '*.*'), fd); //所有檔案都找
if(hFind <> INVALID_HANDLE_VALUE) then
begin
repeat
filename:=fd.cFileName;
fPath := sPath + filename;
if((filename = '.') or (filename = '..')) then //不是上層 或 上上層
Continue;
if(fd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) > 0 then begin//是否為目錄
GetFileList(fPath + '\'); //遞迴呼叫 跑子目錄
end else begin
Memo1.lines.add(fPath);
end;
until (not Windows.FindNextFile(hFind, fd));
Windows.FindClose(hFind);
end;
end;
//刪除所有檔案
procedure DeleteFiles (Const FileName : String);
var
List : TStrings;
idx : integer;
Path : String;
begin
List := TStringList.Create;
try
GetFileList (FileName, List);
Path := ExtractFilePath (FileName);
for idx := 0 to List.Count - 1 do
DeleteFile (format ('%s%s', [Path, List.Strings [idx]]));
finally
FreeAndNil (List);
end;
end;
只選擇資料夾 SelectDirectory
FileCtrl
SelectDirectory('Select a directory', '', dir);
常用選檔案程式碼
procedure btnExcelImpClick(Sender: TObject);
var Fn: string;
begin
With TOpendialog.Create(nil) do begin
Filter := 'CSV 檔案 (*.csv)|*.CSV';
if not Execute then Exit;
Fn := Filename;
Free;
end;
showmessage(Fn);
end;
檢查有無該目錄如沒有則建立目錄
ForceDirectories('C:\XXX');
ForceDirectories 可以一次建立多層目錄
ForceDirectories('c:\xxx\yyy\zzz');
就建立 c:\xxx、c:\xxx\yyy、c:\xxx\yyy\zzz 三個目錄
留言列表