System.SysUtils.ExpandFileNameCase
Delphi
function ExpandFileNameCase(const FileName: string; out MatchFound: TFilenameCaseMatch): string;
C++
extern DELPHI_PACKAGE System::UnicodeString __fastcall ExpandFileNameCase(const System::UnicodeString FileName, /* out */ TFilenameCaseMatch &MatchFound)/* overload */;
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
function | public | System.SysUtils.pas System.SysUtils.hpp |
System.SysUtils | System.SysUtils |
説明
大文字と小文字を区別するファイル システム上の相対ファイル名の完全パス名を返します。
ExpandFileNameCase では相対ファイル名を完全修飾パス名に展開してから、そのファイルまたは名前の一致率が高い(大文字と小文字を区別しない)ファイルの検出を試みます。 これが便利なのは、ファイル名データを大文字と小文字を区別しない規約(Windows)から大文字と小文字を区別する規約(MacOS および Linux)に変換するときです。さらに、MacOS の規約に慣れていないユーザーが入力したファイル名を検証する場合に便利です。
FileName
は展開する相対ファイル名です。
MatchFound
は、FileName
に対して検出された一致内容(存在する場合)を示します。
戻り値は ExpandFileNameCase で生成された完全修飾パス名です。 戻り値と FileName
との関係は、MatchFound
の値で決まります。詳細は次の表に示します。
MatchFound
|
戻り値 |
mkNone | ExpandFileName により返る、完全修飾パス名です。 |
mkExactMatch | FileName に大文字と小文字を区別して一致した、単一ファイルの完全修飾パス名です。 これは MatchFound が mkNone であるときに返される値と同じです。
|
mkSingleMatch | (MacOS および Linux 上で)FileName に大文字と小文字を区別せずに一致した単一ファイルの完全修飾パス名です。
|
mkAmbiguous | (MacOS および Linux 上で)FileName に大文字と小文字を区別せずに一致したものの 1 つの完全修飾パス名です。このパス名は指定ファイルと同じではなく、必ずしも一致率が高い名前ではありません。
|
メモ: ExpandFileNameCase の処理速度は ExpandFileName よりもはるかに低いです。特に、指定したファイル名があいまいであるとき、つまり実際のファイルに一致しないときです。