お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"ファイル関連で役に立ちそうな関数"

この発言に対し以下のコメントが寄せられています
#00172 凛 さん RE:ファイル関連で役に立ちそうな関数

ファイル関連で役に立ちそうな関数群です。 どれも大したコードではありませんが、どうぞ。(^-^; function ExtractFileFolder(const FileName: String): String; begin Result := ExtractFileName(ExtractFileDir(FileName)); end; FileNameの存在するフォルダを取得します。 例)C:\Program Files\Microsoft\Office\Msword.exe → Office function FileSizeEx(const FileName: String): Integer; var R: TSearchRec; i: Integer; begin i := FindFirst(FileName, faAnyFile, R); try if i = 0 then Result := R.Size else Result := -1; finally FindClose(R); end; end; System.FileSizeに比べて、使用中のファイルでもファイルサイズを取得すること ができます。失敗すると、-1 が返ります。 function FileUpdated(const Src, Dst: String): Boolean; begin Result := FileAge(Dst) < FileAge(Src); end; Srcファイルが、Dstファイルよりも新しい場合、Trueが返ります。 function GetTemporaryFileName(const Path, Prefix: String): String; var Buf: array[0..(MAX_PATH - 1)] of Char; begin GetTempFileName(PChar(Path), PChar(Prefix), 0, Buf); Result := Buf; end; Pathで指定されたディレクトリにおいて有効なテンポラリファイル名を返します。 Prefixには、~df などを指定して下さい。 function GetWindowsTemporaryFileName(const Prefix: String): String; var Buf: array[0..(MAX_PATH - 1)] of Char; begin GetTempPath(MAX_PATH, Buf); Result := GetTemporaryFileName(Buf, Prefix); end; GetTemporaryFileNameのWindowsテンポラリ固定版です。 例)~df を引数として渡すと、C:\Windows\Temp\~df801a.tmp などが返ります。 function RemoveDirectories(const Dir: String): Boolean; var Tmp: String; F: TSearchRec; i: Integer; begin if Dir[Length(Dir)] <> '\' then Tmp := Dir + '\' else Tmp := Dir; i := FindFirst(Tmp + '*.*', faDirectory, F); Result := True; try while i = 0 do begin if (F.Name <> '.') and (F.Name <> '..') and ((F.Attr and faDirectory) > 0) then begin Result := RemoveDirectories(Tmp + F.Name) and Result; end; i := FindNext(F); end; finally FindClose(F); end; Result := RemoveDir(Dir) and Result; end; Dirより下層のディレクトリをすべて削除します。一つでもディレクトリの削除に 失敗すると、Falseが返ります。 ※安全のため、ファイルが存在するディレクトリは削除しません。 ※再帰呼び出しなので、スタックオーバーフローに注意して下さい。                           '97.11.07(金) ひでかず Original document by ひでかず 氏 ID:(LDW01154)



ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum