AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
DelphiXE3 [FMX] ファイル操作関連(2) 2014/06/24
 
前回の続きです。
従来の、System.SysUtils 内にあるファイル・フォルダ操作関連のルーチンについて見てみます。これもファイルの外から操作するものと、ファイルの内から操作するものがありますので分けておきます。まずは、外からのものから。
 
ChangeFileExtファイル名拡張子を変更します。
ChangeFilePathファイル名のパスを変更します。
CreateDir新規ディレクトリを作成します
DeleteFileファイルをディスクから削除します。
DirectoryExists指定したディレクトリが存在するかどうかを判断します。
DiskFree指定されたドライブの空き容量を返します。
DiskSize指定されたドライブのサイズをバイト数で返します。
ExcludeTrailingBackslash末尾の区切り記号を削除したパス名を返します。
ExcludeTrailingPathDelimiter末尾の区切り記号を削除したパス名を返します。
ExpandFileName相対ファイル名に対応する絶対パス名を返します。
ExpandFileNameCase大文字と小文字が区別されるファイルシステムの相対ファイル名に対応する絶対パス名を返します。
ExpandUNCFileName適切な場合、UNC 形式のファイル名の完全パスを返します。
ExtractFileDirFileName のドライブ部分とディレクトリ部分を返します。
ExtractFileDrive ファイル名のドライブ部分を返します。
ExtractFileExtファイル名の拡張子部分を返します。
ExtractFileName ファイル名の名前部分と拡張子部分を返します。
ExtractFilePathファイル名のドライブ部分とディレクトリ部分を返します。
ExtractRelativePath特定のベース ディレクトリに対する相対パス名を返します。
ExtractShortPathName ファイル名を 8.3 形式の短いパス名に変換します。
FileAgeファイルの OS タイム スタンプを返します。
FileCreateSymLink シンボリック リンクを作成します。
FileDateToDateTimeOS の日付時刻値を TDateTime 値に変換します。
FileExists 指定したファイルが存在するかどうかを検査します。
FileGetAttr FileName の属性を返します。
FileGetDateTimeInfo指定されたファイルのタイム スタンプを返します。
FileGetSymLinkTarget シンボリック リンクのターゲットに関する情報を返します。
FileIsReadOnly ファイルが読み取り専用かどうかを返します。
FileSearch指定のディレクトリ パス内でファイルを探します。 この検索は、常に現在のドライブの現在のディレクトリから始まります。
FileSetAttr指定したファイルのファイル属性を設定します。
FileSetDate指定したファイルの OS タイム スタンプを設定します。
FileSetReadOnlyファイルのアクセス権限を読み取り専用に設定します。
FileSystemAttributesファイル システムの属性を返します。
FindClose FindFirst によって割り当てられたメモリを解放します。
FindFirst指定されたファイル名と一連の属性を持つ最初のファイルを、指定されたディレクトリ内で探します。
FindNextFindFirst を呼び出したときに指定した名前と属性に一致する次のエントリを返します。
ForceDirectories新規のディレクトリを作成します。必要に応じて親ディレクトリも作成されます。
GetCurrentDirカレントディレクトリの名前を返します。
GetFileVersionファイルのバージョンを返します。
GetHomePathWindows の場合は現在のユーザーの AppData フォルダのパスを、Mac OS X の場合は現在のユーザーのホーム ディレクトリのパスを、それぞれ返します。
IncludeTrailingBackslashパス名が必ず区切り記号で終わるようにします。
IncludeTrailingPathDelimiter パス名が必ず区切り記号で終わるようにします。
IsPathDelimiter文字列の指定された位置にある文字が、パス区切り文字であるかどうかを示します。
IsRelativePath指定されたパスが相対パスかどうかを示します。
RemoveDir既存の空ディレクトリを削除します。
RenameFileファイル名を変更します。
SetCurrentDirカレントディレクトリを設定します。
 
ChangeFileExt function ChangeFileExt(
 const FileName, Extension: string): string;
ファイル名拡張子を変更します。

ChangeFileExt 関数は,FileName に渡されたファイル名の拡張子を Extension に渡された拡張子に変更します。Extension は,新しい拡張子(最初のドット文字を含む)を指定します。

ChangeFileExt は,実際のファイルの名前は変更しません。新しいファイル名を持つ文字列を作成するだけです。

メモ: この関数はマルチバイト文字セット(MBCS)で動作します。
 
ChangeFilePath function ChangeFilePath(
 const FileName, Path: string): string;
ファイル名のパスを変更します。

ChangeFilePath は、渡された FileName のドライブ レター部分とディレクトリ部分を、渡された Path 値で置き換えます。Path を指定する場合は、ドライブ レター(末尾がコロン)とディレクトリ(末尾がバックスラッシュ)の両方またはいずれか一方を指定する必要があります。

ChangeFilePath は、実際のファイルの名前を変更するのではなく、新しいファイル名文字列を作成するだけです。

メモ: この関数はマルチバイト文字セット(MBCS)で動作します。
 
CreateDirfunction CreateDir(const Dir: string): Boolean;
新規ディレクトリを作成します。

CreateDir 関数は新規ディレクトリを作成します。戻り値は,新規ディレクトリの作成に成功した場合に true,エラーが発生した場合には false です。
 
DeleteFilefunction DeleteFile(const FileName: string): Boolean;
ファイルをディスクから削除します。

DeleteFile は、FileName で名前を指定されたファイルをディスクから削除します。 ファイルが削除できない場合や存在しない場合には、この関数は False を返します。

メモ: DeleteFile では、ファイルやディレクトリからシンボリック リンクを削除することができます。symlinks を削除するにはこの方法をお勧めします。
 
DirectoryExists function DirectoryExists(const Directory: string;
 FollowLink: Boolean = True): Boolean;
指定したディレクトリが存在するかどうかを判断します。

DirectoryExists を呼び出すと、Directory パラメータによって指定されたディレクトリが存在するかどうかを、判断することができます。ディレクトリが存在する場合、関数は True を返します。そのディレクトリが存在しなかった場合、関数は、False を返します。

完全パス名が指定された場合、DirectoryExists は指定されたパスのディレクトリを検索します。そうでなければ、Directory パラメータはカレント ディレクトリからの相対パス名と解釈されます。

メモ:Directory パラメータが シンボリック リンク であり、FollowLink パラメータが True に設定されている場合、このメソッドは対象ディレクトリに対して実行されます。 最初の条件が True だが FollowLink パラメータが False に設定されている場合、メソッドはシンボリック リンクに対して実行されます。 リンクが壊れている場合、メソッドは常に False を返します。
メモ: Vcl.FileCtrl ユニット(Windows のみ)にも、DirectoryExists 関数があります。しかし、Vcl.FileCtrl のものは廃止予定のため、たとえクロスプラットフォームである必要がなくても、System.SysUtils の方の使用が推奨されます。

Directory パラメータがディレクトリの場合、メソッドの動作は次の通りです:
ディレクトリが存在するFollowLink結果
YESTrueTrue
YESFalseTrue
NOTrueFalse
NOFalseFalse
 
Directory パラメータがシンボリック リンクの場合、メソッドの動作は次の通りです:
リンク対象が存在するFollowLink結果
YESTrueTrue
YESFalseTrue
NOTrueFalse
NOFalseTrue
 
DiskFree
function DiskFree(Drive: Byte): Int64;
指定されたドライブの空き容量を返します。

DiskFree は,指定されたドライブ(0 が現在のドライブ,1 が A ドライブ,2 が B ドライブ,以下同様)の空きバイト数を返します。

DiskFree は,ドライブ番号が無効な場合は -1 を返します。

メモ: DiskFree は,Windows でのみ利用できます。
 
DiskSizefunction DiskSize(Drive: Byte): Int64;
指定されたドライブのサイズをバイト数で返します。

ドライブ番号は,0 が現在のドライブ,1 が A ドライブ,2 が B ドライブと続きます。DiskSize は,ドライブ番号が無効な場合は -1 を返します。

メモ: DiskSize は,Windows でのみ利用できます。
 
ExcludeTrailingBackslash
function ExcludeTrailingBackslash(
 const S: string): string;
末尾の区切り記号を削除したパス名を返します。

ExcludeTrailingBackslash は、末尾のパス区切り文字(Windows では \、MAC OS では /)を削除して、S を返します。

メモ: ExcludeTrailingBackslash は、下位互換性のためにのみ用意されています。 代わりに、ExcludeTrailingPathDelimiter を使用してください。
メモ: ExcludeTrailingBackslash は、マルチバイト文字セット(MBCS)で動作します。
 
ExcludeTrailingPathDelimiter
function ExcludeTrailingPathDelimiter(
 const S: string): string;
末尾の区切り記号を削除したパス名を返します。

ExcludeTrailingPathDelimiter は、末尾のパス区切り文字(Windows では \、MAC OS では /)を削除して、S を返します。

S の最後の文字が区切り文字でなかった場合、S は変更せずにそのまま返されます。

メモ: ExcludeTrailingPathDelimiter は、マルチバイト文字セット(MBCS)で動作します。
 
ExpandFileName
function ExpandFileName(
 const FileName: string): string;
相対ファイル名に対応する絶対パス名を返します。

ExpandFileName 関数は,相対ファイル名を絶対パス名に変換します。ExpandFileName は,結果の絶対パス名が既存のファイルを参照すること,またそのパスが存在することを確認しません。

メモ: ExpandFileName は UNC 形式をサポートしていません。UNC ファイル名に展開するには,ExpandUNCFileName を使用します。
 
ExpandFileNameCase
function ExpandFileNameCase(
 const FileName: string;
 out MatchFound: TFilenameCaseMatch): string;
大文字と小文字が区別されるファイルシステムの相対ファイル名に対応する絶対パス名を返します。

ExpandFileNameCase は,相対ファイル名を絶対パス名に変換した後,そのファイルまたは大文字と小文字の区別も一致する類似した名前のファイルを検索します。これは,大文字と小文字を区別しない規約(Windows)から大文字と小文字を区別する規約(Linux)にファイル名のデータを変換するときに便利です。また,Linux の規約に不慣れなユーザーが入力したファイル名を検証するためにも有効です。

FileName は,相対ファイル名で表され使用時に展開されます。

MatchFound は,FileName と一致したファイルを示します(存在する場合)。

戻り値は,ExpandFileNameCase が生成する絶対パス名です。戻り値と FileName との関係は,MatchFound の値に依存して,以下のように変化します。

mkNone
 ExpandFileName が返す絶対パス名。

mkExactMatch
 FileName と一致する絶対パス名(大文字と小文字を区別)。MatchFound が mkNone である場合の戻り値と同じ値。

mkSingleMatch
 (Linux のみ) FileName と一致するファイルの絶対パス名(大文字と小文字を区別しない)。

mkAmbiguous
 (Linux のみ) FileName と一致するファイル名のうちの 1 つの絶対パス名。このパス名は指定されたファイルと同じではなく,かつ,必ずしも最も一致しているファイルではない。
 
メモ: ExpandFileNameCase は,指定されたファイル名があいまいである場合や,実際のファイルと一致しない場合は特に,ExpandFileName と比べて大幅に時間がかかります。
 
ExpandUNCFileName
function ExpandUNCFileName(
 const FileName: string): string;
適切な場合、UNC 形式のファイル名の完全パスを返します。

ExpandUNCFileName では、指定したファイル名の完全修飾ファイル名を返します。

メモ: ExpandUNCFileName では、ネットワーク ファイルに対して UNC(Universal Naming Convention:汎用命名規則)を使用して完全修飾パス名を返します。 ローカル ディスクにあるファイルでは、ExpandUNCFileName は ExpandFileName と同じです。 UNC ファイル名では、ドライブのプレフィックス部分が、ドライブがマップされるネットワーク リソースの名前に置き換えられます。 たとえば、作業ディレクトリが J:\ourdir で、ドライブ J が \\ourserver\ourshare にマップされている場合、ExpandUNCFileName(「ourfile」)は "\\ourserver\ourshare\ourdir\ourfile" を返します。
 
ExtractFileDir
function ExtractFileDir(
 const FileName: string): string;
FileName のドライブ部分とディレクトリ部分を返します。

結果の文字列は,CreateDir,GetCurrentDir,RemoveDir,および SetCurrentDir 関数に渡すために適したディレクトリ名です。FileName にドライブとディレクトリの部分がない場合,この文字列は空になります。

メモ: この関数はマルチバイト文字セット(MBCS)をサポートします。
 
ExtractFileDrive
function ExtractFileDrive(
 const FileName: string): string;
ファイル名のドライブ部分を返します。


ExtractFileDrive は、FileName パラメータで渡されたファイルの完全修飾パス名のドライブ部分を含む文字列を返します。

ドライブを示す文字を含むファイル名の場合、結果は '<ドライブ>' の形式で返されます。

UNC(Universal Naming Convention:汎用命名規則)パスのファイル名の場合、結果は '\\<サーバー名>\<共有名>' の形式です。

指定されたパスの先頭がどちらの形式にもなっていない場合、結果は空の文字列になります。

メモ: MacOS の場合、ExtractFileDrive は常に長さがゼロの文字列を返します。
 
ExtractFileExt
function ExtractFileExt(
 const FileName: string): string;
ファイル名の拡張子部分を返します。

ExtractFileExt 関数を使用すると,ファイル名の拡張子を取得できます。たとえば,次のコードは,MyFileName という変数によって指定されるファイル名から拡張子を返します。

MyFilesExtension := ExtractFileExt(MyFileName); // Delphi

MyFilesExtension = ExtractFileExt(MyFileName); // C++

結果の文字列には,名前と拡張子を区切るピリオドが含まれます。指定されたファイル名に拡張子がない場合,結果の文字列は空になります。

メモ: この関数はマルチバイト文字セット(MBCS)をサポートします。
 
ExtractFileName
function ExtractFileName(
 const FileName: string): string;
ファイル名の名前部分と拡張子部分を返します。

結果の文字列は,FileName の名前と拡張子をパス情報と区切るコロンまたはスラッシュの直後の文字から始まる右側の文字列です。FileName にドライブ名やディレクトリ名が格納されていない場合,結果の文字列は FileName と同じです。

メモ: この関数はマルチバイト文字セット(MBCS)をサポートします。
 
ExtractFilePath
function ExtractFilePath(
 const FileName: string): string;
ファイル名のドライブ部分とディレクトリ部分を返します。

結果の文字列は,FileName の名前と拡張子をパス情報と区切るコロンまたはスラッシュまでの左側の文字列です。FileName にドライブ部分とディレクトリ部分がない場合,結果の文字列は空になります。

この関数はマルチバイト文字セット(MBCS)をサポートします。
 
ExtractRelativePath
function ExtractRelativePath(
 const BaseName, DestName: string): string;
特定のベース ディレクトリに対する相対パス名を返します。

完全限定パス名を相対パス名に変換するには、ExtractRelativePath を呼び出します。DestName パラメータには、変換するファイル名(パスを含む)を指定します。BaseName は、返される相対パス名が基にするベース ディレクトリの完全限定名です。BaseName はファイル名を含む場合と含まない場合がありますが、最後のパス区切り記号がなくてはなりません。

メモ: 末尾にバックスラッシュを付けずにディレクトリを指定すると(c:\foo\ ではなく c:\foo)、この関数は foo をファイルとして扱い、予期しない結果を返します。次のように正しく呼び出します。
ExtractRelativePath('c:\foo\', 'c:\bar\')
これは次の結果を返します。
'..\bar\'
次のように呼び出した場合、
ExtractRelativePath('c:\foo\', 'c:\bar')
これは次のような不正な結果を返します。
'..'
 
ExtractShortPathName
function ExtractShortPathName(
 const FileName: string): string;
ファイル名を 8.3 形式の短いパス名に変換します。

ExtractShortPathName 関数は,ファイル名 FileName を 8.3 形式に変換します。ExtractShortPathName は,ファイルまたはディレクトリが存在しない場合は,空の文字列を返します。

1 つめのパラメータ FileName には絶対パス名を指定できます。たとえば,ExtractShortPathName は,次の絶対パス名を

C:\Program Files\MyCompany\MyApp\MyApp.exe

次のような短い形式に変換します。

C:\Progra~1\MyComp~1\MyApp\MyApp.exe

メモ: ExtractShortPathName は,Windows でのみ利用できます。
 
FileAge
function FileAge(const FileName: string): Integer; overload;
function FileAge(const FileName: string;
 out FileDateTime: TDateTime;
 FollowLink: Boolean = True): Boolean;
ファイルの OS タイム スタンプを返します。

FileAge を呼び出すと、FileName パラメータで指定したファイルの OS タイム スタンプを取得できます。

第 1 のオーバーロード関数は、ファイルの OS タイム スタンプを表す整数を返します。その結果は、後で FileDateToDateTime 関数を使って TDateTime に変換できます。

メモ: FileAge の第 1 のオーバーロード関数は非推奨になっています。FileAge の第 2 の関数を代わりに使用します。
第 2 のオーバーロード関数は、FileName のタイム スタンプを FileDateTime 出力パラメータに格納して返します。FileName パラメータがシンボリック リンクで、FollowLink パラメータが True に設定されている場合、このメソッドはリンク先のファイルに対して実行されます。最初の条件が True でも、FollowLink パラメータが False に設定されている場合は、シンボリック リンクのタイム スタンプが返されます。戻り値は、操作が成功した場合は True、それ以外の場合は False です。
 
FileCreateSymLink
function FileCreateSymLink(
 const Link, Target: string): Boolean;
FileCreateSymLink はシンボリック リンクを作成します。

FileCreateSymLink メソッドは、シンボリック リンクを作成します。このメソッドに必要なパラメータの一覧を以下の表に示します。
名前意味
Linkシンボリック リンクの名前。
Targetシンボリック リンクを含む文字列。
 
メモ: FileCreateSymLink を呼び出すときには、リンク先のファイルまたはディレクトリが存在していなければなりません。
メモ: FileCreateSymLink は、Windows Vista 以降で使用可能です。
 
FileDateToDateTime
function FileDateToDateTime(
 FileDate: Integer): TDateTime;
OS の日付時刻値を TDateTime 値に変換します。

タイムスタンプは符号付きの 32 ビット整数であり,ファイルが更新された日付と時刻などの情報を記録するために OS で使用されます。タイムスタンプの厳密な形式は OS に依存します。FileDateToDateTime メソッドを使用すると,日付時刻値を TDateTime 値に変換できます。

FileDateToDateTime は,FindFirst 関数および FindNext 関数が使用する TSearchRec type の Time 項目を変換する場合に使用する必要があります。
 
FileExists
function FileExists(const FileName: string;
 FollowLink: Boolean = True): Boolean;
指定したファイルが存在するかどうかを検査します。

FileExists は、FileName によって指定されたファイルが存在する場合に、True を返します。そのファイルが存在しなかった場合、FileExists は、False を返します。

メモ:FileName パラメータが シンボリック リンク であり、FollowLink パラメータが True に設定されている場合、このメソッドは対象ファイルに対して実行されます。最初の条件が True だが FollowLink パラメータが False に設定されている場合、リンクが壊れている(対象ファイルが無効)かどうかを無視して、シンボリック リンク が使用されます。

FileName パラメータがファイルの場合、メソッドの動作は次の通りです:
ファイルが存在するFollowLink結果
YESTrueTrue
YESFalseTrue
NOTrueFalse
NOFalseFalse
 
FileName パラメータがシンボリック リンクの場合、メソッドの動作は次の通りです:
リンク対象が存在するFollowLink結果
YESTrueTrue
YESFalseTrue
NOTrueFalse
NOFalseTrue
 
FileGetAttr
function FileGetAttr(const FileName: string;
 FollowLink: Boolean = True): Integer;
FileName の属性を返します。 FileGetAttr は、ファイルの属性をビット文字列として返します。この値は、TSearchRec 型の Attr フィールドと同じです。個々の属性を、次のようなコードで確認してみましょう:

Attrs := FileGetAttr('MyFile.sys');
if (Attrs or faHidden) <> 0 then
FileSetAttr('MyFile.sys', Attrs and SysUtils.faHidden)
else
FileSetAttr('MyFile.sys', Attrs and (not SysUtils.faHidden));

メモ: 戻り値の faInvalid は、エラーが発生したことを示しています。
メモ: 個々の属性定数の説明については、TSearchRec を参照してください。
メモ: 指定された FileName パラメータが シンボリック リンク であり、FollowLink パラメータが True に設定されている場合、このメソッドは対象ファイルに対して実行されます。 最初の条件が True だが FollowLink パラメータが False に設定されている場合、メソッドはシンボリック リンクに対して実行されます。
 
FileGetDateTimeInfo
function FileGetDateTimeInfo(
 const FileName: string;
 out DateTime: TDateTimeInfoRec;
 FollowLink: Boolean = True): Boolean;
FileGetDateTimeInfo は、指定されたファイルのタイム スタンプを返します。

FileGetDateTimeInfo メソッドは、FileName パラメータで指定されたファイルのタイム スタンプ(DateTime パラメータ)を返します。また、NTFS のすべての有効な日付/時刻スタンプをサポートします。 指定したファイルが存在するかどうかを表すブール値を返します。 指定したファイルがシンボリック リンクの場合、この関数はターゲット ファイルに対して実行されます。 FollowLink が False の場合は、そのシンボリック リンクの日付と時刻が返ります。
 
FileGetSymLinkTarget
function FileGetSymLinkTarget(
 const FileName: string;
 var SymLinkRec: TSymLinkRec): Boolean;
function FileGetSymLinkTarget(
 const FileName: string;
 var TargetName: string): Boolean;
シンボリック リンクのターゲットに関する情報を返します。

FileGetSymLinkTarget のパラメータは以下のとおりです。
FileNameシンボリック リンクの名前。
SymLinkRec シンボリック リンクに関する情報。 この構造体にはターゲット名が含まれています。
 
この関数は、正常に終了した場合、True を返します。
 
FileIsReadOnly
function FileIsReadOnly(
 const FileName: string): Boolean;
ファイルが読み取り専用かどうかを返します。

FileIsReadOnly は、FileName が見つかって開くことができるが、現在のプロセスには書き込み権限がない場合に、True を返します。

メモ: FileIsReadOnly を使用する前に FileExists を呼び出してください。
メモ:FileName パラメータがシンボリック リンクを表している場合、このメソッドはリンク先のファイルに対して実行されます。
 
FileSearch
function FileSearch(const Name, DirList: string): string;
指定のディレクトリ パス内でファイルを探します。 この検索は、常に現在のドライブの現在のディレクトリから始まります。

FileSearch は、現在のディレクトリと、DirList パラメータで渡されたディレクトリで、Name という名前のファイルを検索します。

FileSearch は、Name パラメータと一致するファイルが見つかると、そのファイルのパス名を表す文字列を返します。一致するファイルが存在しない場合は、FileSearch は空の文字列を返します。

メモ:DirList は、パス名のリストで、Windows ではセミコロン、MacOS ではコロンで区切られています。
 
FileSetAttr
function FileSetAttr(const FileName: string;
 Attr: Integer; FollowLink: Boolean = True): Integer;
指定したファイルのファイル属性を設定します。

FileSetAttr は、FileName で指定したファイルのファイル属性を Attr で指定した値に設定します。 Attr の値は、次に示すように、適切なファイル属性定数を組み合わせて作成します。

Delphi の場合:
FileSetAttr('MyFile.sys', SysUtils.faReadOnly or SysUtils.faSysFile, True);

FileSetAttr は、処理が成功すれば 0 を返します。 成功しなければエラー コードを返します。

メモ: 指定された FileName パラメータが シンボリック リンク であり、FollowLink パラメータが True に設定されている場合、このメソッドは対象ファイルに対して実行されます。 最初の条件が True だが FollowLink パラメータが False に設定されている場合、メソッドはシンボリック リンクに対して実行されます。
メモ: FileSetAttr は、Windows でのみ利用できます。
 
FileSetDate
function FileSetDate(const FileName: string;
 Age: Integer): Integer;
function FileSetDate(Handle: THandle;
 Age: Integer): Integer;
指定したファイルの OS タイム スタンプを設定します。

FileSetDate は、指定されたファイルの OS タイム スタンプを Age で指定された値に設定します。 DateTimeToFileDate 関数を使用すると、TDateTime の値を OS タイム スタンプに変換することができます。

FileName は、変更するファイルの名前です。

Age は、指定されたファイルに適用するタイム スタンプです。

メモ:Handle は、変更するファイルの Windows ファイル ハンドルです。 この構文は Windows でのみ利用できます。
関数の処理が成功した場合の戻り値は 0 です。 成功しなければエラー コードが返されます。

メモ:FileName パラメータが シンボリック リンク の場合、このメソッドは対象ファイルに対して実行されます。
 
FileSetReadOnly
function FileSetReadOnly(const FileName: string;
 ReadOnly: Boolean): Boolean;
ファイルのアクセス権限を読み取り専用に設定します。

FileSetReadOnly メソッドは、FileName パラメータで指定されたファイルに、ReadOnly パラメータで指定された読み取り専用ステータスを設定しようとします。

FileSetReadOnly メソッドは、操作が成功すれば True を、エラーが発生すれば False を、それぞれ返します。

メモ:FileName パラメータがシンボリック リンクの場合、このメソッドはリンク先のファイルに対して実行されます。
メモ: MAC OS では、FileSetReadOnly は、ファイルに対して 3 つの書き込み権限(ユーザー、グループ、その他)をすべて設定または削除しようとします。
FileSetReadOnly は、クロスプラットフォーム コードをサポートするためのものです。

FileSetReadOnly でできる操作以上に細かく権限を操作する場合は、プラットフォーム固有の関数を使用します。
 
FileSystemAttributes
function FileSystemAttributes(
 const Path: string): TFileSystemAttributes;
ファイル システムの属性を返します。

FileSystemAttributes は、パス名で指定されたファイル システムの属性を返します。FileSystemAttributes は、指定されたパスからドライブ識別子を抜き出し、そのドライブにあるファイル システムの属性を返します。指定されたパスが無効であれば、例外が送出されます。

たとえば、ドライブ X がリムーバブル(取り外し可能)かどうかを確かめるには、X の有効なパス名を引数に渡してこの関数を呼び出します。Delphi の場合は、以下のようなコードになります。

FileSysAttr := FileSystemAttributes('X:\');
if fsRemovable in FileSysAttr then
  Writeln('Drive X is removable');
 
FindClose
procedure FindClose(var F: TSearchRec);
FindFirst によって割り当てられたメモリを解放します。

FindClose 手続きは,FindFirst/FindNext シーケンスを終了します。
 
FindFirst
function FindFirst(const Path: string; Attr: Integer;
 var F: TSearchRec): Integer;
指定されたファイル名と一連の属性を持つ最初のファイルを、指定されたディレクトリ内で探します。

FindFirst は、Path で指定されたディレクトリの中で、Path に含まれるファイル名と Attr パラメータで指定された属性とに一致する、最初のファイルを探します。 結果は F パラメータとして返されます。 この検索レコードのフィールドから必要な情報を取り出すことができまます。 FindFirst は、ファイルの検索が成功した場合には 0 を、それ以外の場合にはエラー コードを返します。

Path という定数パラメータは、ディレクトリとファイルの名前のマスクであり、ワイルドカード文字を含むことができます。 たとえば '.\test\*.*' は、test サブディレクトリ内の全ファイルを表します(Windows の場合)。

Attr パラメータでは、すべての通常のファイルの他に検索条件に含めたい、特別なファイルを指定します。 Attr パラメータを指定する際、以下のファイル属性定数から選択します。
定数 説明
faInvalid 不正なファイルであることを示します。
faReadOnly読み取り専用ファイルまたは読み取り専用ディレクトリであることを示します。
faHidden隠しファイルまたは隠しディレクトリであることを示します。
faSysFileシステム ファイルまたはシステム ディレクトリであることを示します。
faVolumeID (廃止予定)
faDirectoryディレクトリであることを示します。
faArchive Windows アーカイブ ファイルであることを示します。
faNormal通常のファイルであることを示します。
faTemporary一時ファイルまたは一時ディレクトリであることを示します。
faSymLink シンボリック リンク ファイル タイプのみを指定します。
faCompressed 圧縮ファイルまたは圧縮ディレクトリであることを示します。
faEncrypted 暗号化されたファイルまたはディレクトリであることを示します。
faVirtual システムで使用するために予約されています。
faAnyFile 任意のファイル タイプを指定します。
 
定数や値を追加したり(Delphi の場合)、or で結ぶことで(C++ の場合)、属性を組み合わせることができます。 たとえば、通常のファイルに加えて読み取り専用で非表示のファイルを検索条件にする場合には、Delphi では (faReadOnly + faHidden) を、C++ では (faReadOnly | faHidden) を、Attr パラメータとして渡します。 通常のファイルだけを含める場合には、Attr パラメータに 0 を渡します。

メモ: FindFirst はリソース(メモリ)を確保するため、FindClose を呼び出してそれらは解放しなければなりません。
メモ: ファイル属性定数の一部は、すべてのプラットフォームで有効というわけではありません。たとえば MAC OS の場合、faVolumeID と faArchive は正しく機能しません。
 
FindNext
function FindNext(var F: TSearchRec): Integer;
FindFirst を呼び出したときに指定した名前と属性に一致する次のエントリを返します。

FindNext 関数は,FindFirst を呼び出したときに指定した名前と属性に一致する次のエントリを返します。検索レコードは FindFirst 関数に渡したものと同じでなくてはなりません。この関数は,成功すると 0 を返します。それ以外の場合はエラーコードを返します。
 
ForceDirectories
function ForceDirectories(Dir: string): Boolean;
新規のディレクトリを作成します。必要に応じて親ディレクトリも作成されます。

ForceDirectories 関数は,Dir で指定されたとおりに新規ディレクトリを作成します。Dir は,絶対パス名でなければなりません。パスで指定されたディレクトリが存在しない場合,ForceDirectories はそれらのディレクトリを作成します。

ForceDirectories は,すべてのディレクトリが作成された場合に true を返し,エラーが発生した場合は false を返します。

警告: 空の文字列を使って ForceDirectories を呼び出さないでください。そのようにして ForceDirectories を呼び出すと,例外が生成されます。
メモ: FileCtrl ユニット(Windows 専用)でも ForceDirectories 関数が提供されています。ただし,コードをクロスプラットフォームにする必要がない場合でも,FileCtrl バージョンではなく SysUtils バージョンを使用することをお勧めします。
 
GetCurrentDir
function GetCurrentDir: string;
カレントディレクトリの名前を返します。

GetCurrentDir 関数は,カレントディレクトリの完全限定名を返します。
 
GetFileVersion
function GetFileVersion(
 const AFileName: string): Cardinal;
ファイルのバージョンを返します。

GetFileVersion は,ファイルのバイナリバージョン番号の有効な 32 ビットを返します。AFileName はファイル名を指定します。この名前は,LoadLibrary 関数と同じパスで検索されます。

GetFileVersion を使用できるのは Windows 環境だけなので,クロスプラットフォームコードでは使用しないでください。
 
GetHomePath
function GetHomePath: string;
Windows の場合は現在のユーザーの AppData フォルダのパスを、Mac OS X の場合は現在のユーザーのホーム ディレクトリのパスを、それぞれ返します。

GetHomePath を使用すると、ユーザー固有のファイルを格納できます。
 
IncludeTrailingBackslash
function IncludeTrailingBackslash(
 const S: string): string;
パス名が必ず区切り記号で終わるようにします。

IncludeTrailingBackslash は、パス名が必ず、パス区切り文字(Windows では \、MAC OS では /)で終わるようにします。

メモ: IncludeTrailingBackslash は、マルチバイト文字セットで動作します。
メモ: この関数は、後方互換性のためにのみ同梱されています。代わりに、IncludeTrailingPathDelimiter を使用してください。
 
IncludeTrailingPathDelimiter
function IncludeTrailingPathDelimiter(
 const S: string): string;
パス名が必ず区切り記号で終わるようにします。

IncludeTrailingPathDelimiter は、パス名が必ず、パス区切り文字(Windows では \、MAC OS では /)で終わるようにします。 S の最後の文字が区切り文字だった場合、変更せずにそのまま返されます。そうでなければ、区切り文字が追加して S は返されます。

メモ: IncludeTrailingPathDelimiter は、マルチバイト文字セット(MBCS)で動作します。
 
IsPathDelimiter
function IsPathDelimiter(const S: string;
 Index: Integer): Boolean;
文字列の指定された位置にある文字が、パス区切り文字であるかどうかを示します。

IsPathDelimiter を呼び出すと、文字列にパス区切り文字(Windows では「\」、Macintosh では「/」)があるかどうかを、判別することができます。 位置は 1 から番号が振られます。

マルチバイト文字セット(MBCS)で作業している場合、IsPathDelimiter は、本来の区切り文字と、ダブルバイト文字の 2 バイト目に現れる同じ値のバイトとを区別します。

区切り文字以外の文字もテストするには、IsDelimiter を使用します。
 
IsRelativePath
function IsRelativePath(const Path: string): Boolean;
指定されたパスが相対パスかどうかを示します。

指定されたパスが存在しない場合、IsRelativePath は False を返します。
 
RemoveDir
function RemoveDir(const Dir: string): Boolean;
既存の空ディレクトリを削除します。

RemoveDir を呼び出すと、Dir パラメータに指定したディレクトリを削除できます。 ディレクトリの削除が成功すると True が、エラーが発生すると False が返されます。 削除を成功させるには、ディレクトリが空でなければなりません。

メモ: シンボリック リンクを扱う場合には、プラットフォームによってシンボリック リンクの実装方法が異なるために、特別な状況を考慮する必要があります。 Windows では、RemoveDir はディレクトリからシンボリック リンクを削除することしかできません(ディレクトリ リンクが壊れているかどうかは関係ありません)。
 
RenameFile
function RenameFile(const OldName, NewName: string): Boolean;
ファイル名を変更します。

RenameFile は、OldFile で指定されたファイルの名前を NewFile に変更しようと試みます。 操作が成功すれば、RenameFile は、True を返します。 ファイル名を変更できない場合(たとえば、アプリケーションにファイルを変更する権限がない場合など)、RenameFile は False を返します。

メモ:OldName パラメータが symbolic link の場合、このメソッドはtarget fileに対して実行されます。
メモ:NewFile が既存のファイルの名前を表す場合、RenameFile の動作は Windows と Macintosh で異なります。 Windows では、名前を変更する操作が失敗します。
 
SetCurrentDir
function SetCurrentDir(const Dir: string): Boolean;
カレントディレクトリを設定します。

SetCurrentDir 関数は,カレントディレクトリを設定します。戻り値は,カレントディレクトリの変更に成功した場合には true,エラーが発生した場合は false です。
 
 
次に、ファイルの内から操作するもの。引数・返り値にファイルハンドルをもつものです。
 
FileClose 指定されたファイルを閉じます。
FileCreate新しいファイルを作成します。
FileGetDate 指定したファイルの OS タイムスタンプを返します。
FileOpen 指定されたアクセスモードで指定されたファイルを開きます。
FileRead ファイルから指定されたバイト数を読み出します。
FileSeek読み書きのポイントを移動します。
FileSetAttr指定したファイルのファイル属性を設定します。
FileSetDate指定したファイルの OS タイム スタンプを設定します。
FileWrite バッファの内容をファイル内の現在位置に書き込みます。
 
FileClose
procedure FileClose(Handle: THandle);
指定されたファイルを閉じます。

FileClose 手続きは,指定されたハンドルを持つファイルを閉じます。ハンドルは,FileOpen または FileCreate を使ってファイルを開いたときに取得されます。

メモ: : Delphi 言語変数を使用するときは,かわりに CloseFile 手続きを使用します。
 
FileCreate
function FileCreate(const FileName: string): THandle;
function FileCreate(const FileName: string;
 Rights: Integer): THandle;
function FileCreate(const FileName: string;
 Mode: LongWord; Rights: Integer): THandle;
新しいファイルを作成します。


FileCreate は、指定された名前で新しいファイルを作成します。戻り値が正であれば、関数は正常に終了していて、その値は新しいファイルのファイル ハンドルになっています。戻り値が INVALID_HANDLE_VALUE であれば、エラーが発生したことを示します。

FileCreate の戻り値は、Int から THandle に変更されました。以前の動作を維持するには、FileCreate の戻り値を System.NativeInt にキャストします。この場合、戻り値 -1 がエラーを表します。次のコードでは、そのやり方の例を示しています。

var
MyFile: NativeInt;
begin
MyFile := NativeInt(FileCreate('C:\temp\bla.txt'));
if MyFile = -1 then
 raise Exception.Create('File already exists');
end:
 
メモ: Windows では FileAccessRights 変数と Rights パラメータが無視されます。
 
FileGetDate
function FileGetDate(Handle: THandle): Integer;
指定したファイルの OS タイムスタンプを返します。

FileGetDate を使用すると、指定されたハンドルを持つファイルのタイムスタンプを知ることができます。

ハンドルが不正な場合は、-1 が戻り値として返されます。

FileDateToDateTime 関数は、戻り値を TDateTime 値に変換するために使用することができます。

メモ: FileGetDate は、ネイティブ Delphi ファイル変数ではなく、ファイル ハンドルを使用します。 FileOpen または FileCreate メソッドを使用してオープンされていないファイルのタイムスタンプを取得するには、代わりに FileAge 関数を使用します。
メモ: MacOS では、-1 は常に正しいタイムスタンプです。 FileExists を代わりに使用すると、ファイルが存在するのかどうかを検証することができます。
 
FileOpen
function FileOpen(const FileName: string;
 Mode: LongWord): THandle;
指定されたアクセスモードで指定されたファイルを開きます。

FileOpen 関数を使用すると,ファイルを開いて,ファイルハンドルを取得できます。アクセスモードの値は,fmOpen 定数のいずれかと,ファイルオープンモード定数で定義されている fmShare 定数のいずれかとの論理和をとることによって作成されます。戻り値が 0 以上である場合,この関数は成功しており,その戻り値は開いたファイルのファイルハンドルを示します。戻り値が -1 の場合は,エラーが発生したことを示します。

Mode パラメータは、ファイルを開く方法を示します。Mode パラメータは、オープン モードと(可能な場合の)共有モードを表す識別子を or で結んで指定します。オープン モードには、次のいずれかの値を指定します。
意味
fmOpenRead読み取り専用でファイルを開きます。
fmOpenWrite書き込み専用でファイルを開きます。ファイルへの書き込みにより、現在の内容は完全に置き換えられます。
fmOpenReadWriteファイルを開き、現在の内容を置き換えるのではなく、変更します。
 
共有モードには、次のいずれかの値を指定します。
意味
fmShareCompat共有モードは FCB を使って開く方法と互換性があります。
fmShareExclusive他のアプリケーションは、どんな理由があってもファイルを開くことができません。
fmShareDenyWrite他のアプリケーションは、ファイルを読み取り用に開くことができますが、書き込み用には開けません。
fmShareDenyRead他のアプリケーションは、ファイルを書き込み用に開くことができますが、読み取り用には開けません。
fmShareDenyNone他のアプリケーションによるファイルの読み取りおよび書き込みを回避する処理は行われません。
 
メモ: FileOpen のような Delphi のネイティブでないファイルハンドラの使用は避けてください。これらのルーチンはシステムルーチンにマップされていて,通常の Delphi ファイル変数ではなく OS ファイルハンドルを返します。これらは低レベルのファイルアクセスルーチンです。通常のファイル操作には,AssignFile,Rewrite,および Reset を使用してください。
 
FileRead
function FileRead(Handle: THandle; var Buffer;
 Count: LongWord): Integer;
function FileRead(Handle: THandle; var Buffer:TBytes;
 Offset, Count: LongWord): Integer;
ファイルから指定されたバイト数を読み出します。

FileRead 関数は,Handle で指定したファイルから Buffer に Count バイトを読み出します。Count パラメータはバッファのサイズをバイト数で示します。この関数の結果は実際に読み出されたバイト数になるので,Count より少なくなることがあります。FileRead に渡される Handle は FileOpen または FileCreate でオープンされなければなりません。

メモ: :Delphi では,ファイルハンドルを取り出したり返したりするルーチンと,Delphi 言語ファイル変数(var F など)を使用するルーチンと混同しないでください。Delphi ファイル変数によって指定されるファイルから読み出すには,かわりに BlockRead 手続きまたは Read 手続きを使用します。
 
FileSeek
function FileSeek(Handle: THandle;
 Offset, Origin: Integer): Integer;
function FileSeek(Handle: THandle;
 const Offset: Int64; Origin: Integer): Int64;
読み書きのポイントを移動します。

FileSeek を使用すると,FileOpen または FileCreate で開かれたファイル内で読み書きのポイントを移動できます。Handle は,FileOpen または FileCreate によって返されたファイルハンドルです。

Offset はファイルポインタを位置付ける Origin からのバイト数を指定します。Origin はファイルの始まり,ファイルの終わり,ファイルポインタの現在位置のいずれかを示す値のコードです。
Origin アクション
0ファイルポインタをファイルの始まりから Offset バイトの位置に設定する
1ファイルポインタを現在位置から Offset バイトの位置に設定する
2ファイルポインタをファイルの終わりから Offset バイトの位置に設定する
 
正常終了すると,FileSeek はファイルポインタの新しい位置を返します。それ以外の場合は -1 を返します。

メモ: :ファイルハンドルを取り出したり返したりするルーチンと Delphi 言語のファイル変数(var F など)を使用するルーチンを混同しないでください。Delphi ファイル変数によって指定されるファイル内でファイルポインタを移動するには,かわりに Seek 手続きを使用します。
 
FileSetDate
function FileSetDate(const FileName: string;
 Age: Integer): Integer;
function FileSetDate(Handle: THandle;
 Age: Integer): Integer;
指定したファイルの OS タイム スタンプを設定します。

FileSetDate は、指定されたファイルの OS タイム スタンプを Age で指定された値に設定します。 DateTimeToFileDate 関数を使用すると、TDateTime の値を OS タイム スタンプに変換することができます。

FileName は、変更するファイルの名前です。

Age は、指定されたファイルに適用するタイム スタンプです。

メモ:Handle は、変更するファイルの Windows ファイル ハンドルです。 この構文は Windows でのみ利用できます。
関数の処理が成功した場合の戻り値は 0 です。 成功しなければエラー コードが返されます。

メモ:FileName パラメータが シンボリック リンク の場合、このメソッドは対象ファイルに対して実行されます。
 
FileWrite
function FileWrite(Handle: THandle;
 const Buffer; Count: LongWord): Integer;
function FileWrite(Handle: THandle;
 const Buffer:TBytes; Offset, Count: LongWord): Integer;
バッファの内容をファイル内の現在位置に書き込みます。

FileWrite 関数は,Buffer で指定されたバッファから Handle で指定されたファイルに Count バイトを書き込みます。Handle は FileOpen または FileCreate メソッドによって返されるファイルハンドルです。

戻り値は実際に書き込まれたバイト数で,エラーが発生した場合には -1 が返されます。

メモ: :ファイルハンドルを取り出したり返したりするルーチンと Delphi 言語のファイル変数(var F など)を使用するルーチンを混同しないでください。Delphi ファイル変数によって指定されるファイルに書き込むには,かわりに Write,Writeln,または BlockWrite を使用します。
 
 
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Dehi入門編
>Delphi2010
>DelphiXE3
▲2014/06/23
 2014/06/24
▼2014/06/28
 
シェアウェア
Script!World
データベース
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.