System.AnsiStrings.ExpandFileNameCase
Delphi
function ExpandFileNameCase(const FileName: AnsiString;
out MatchFound: TFilenameCaseMatch): AnsiString;
C++
extern DELPHI_PACKAGE System::AnsiString __fastcall ExpandFileNameCase(const System::AnsiString FileName, /* out */ TFilenameCaseMatch &MatchFound)/* overload */;
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
function | public | System.AnsiStrings.pas System.AnsiStrings.hpp |
System.AnsiStrings | System.AnsiStrings |
説明
大文字と小文字を区別しないで、ファイル名の近似一致を探す検索を実行して、完全修飾ファイル名を取得します。
ExpandFileNameCase は、ExpandFileName と同様に完全修飾ファイル名を返します。ただし、実際のファイル システムで、大文字と小文字を区別しないで、大文字と小文字のみが異なるファイル名の近似一致を探す検索を実行します。これは、ユーザーの入力を使用可能なファイル名に変換する場合、または大文字と小文字を区別しないファイル システム(Windows など)で作成されたファイル名データを、大文字と小文字を区別するファイル システム(Linux など)で使用できるように変換する場合に役に立ちます。
MatchFound 出力パラメータは、ファイル システムで見つかった一致の種類と、関数の結果が基にしている内容(不一致の度合いまたは複合度の少ない順)を示します。
- mkExactMatch: 大文字と小文字を区別して、一致するファイルがあります。結果は、ExpandFileName(ファイル名) となります。
- mkSingleMatch: 大文字と小文字を区別しないで、指定されたディレクトリ パスの 1 つのファイルのみが、指定されたファイル名と一致します。ExpandFileName(ファイル システムで見つかったファイル名) を返します。
- mkAmbiguous: 大文字と小文字を区別しないで、指定されたディレクトリ パスにある複数のファイルが、指定されたファイル名と一致します。多くの場合、これはエラーと判断されるべきです。結果は、ExpandFileName(最初に見つかった一致するファイル名) となります。
- mkNone: ファイルが 1 つも見つかりません。結果は、ExpandFileName(ファイル名) となります。
メモ: この関数は、ファイル システムを検索するので、特に指定されたファイル名があいまいな場合、または存在しない場合は、ExpandFileName よりもかなり遅いことがあります。ファイル名の指定元が信頼できないため(ユーザーの入力など)、エラーになる前に最良の推測をしたい場合のみ、ExpandFileNameCase を使用します。