C++ Builder 參考手冊(cè) ? System::Sysutils ? AnsiCompareFileName
比較兩個(gè)文件名,使用當(dāng)前的地區(qū)和語(yǔ)言,并且根據(jù)操作系統(tǒng)文件名是否區(qū)分大小寫(xiě)扮授。
頭文件:#include <System.SysUtils.hpp>
命名空間:System::Sysutils
函數(shù)原型:
int __fastcall AnsiCompareFileName(
const System::UnicodeString S1,
const System::UnicodeString S2,
bool CheckVolumeCase = false);
int __fastcall AnsiCompareFileName(
const System::WideChar * S1,
int Len1,
const System::WideChar * S2,
int Len2,
bool CheckVolumeCase = false);
int __fastcall AnsiCompareFileName(
const System::UnicodeString S1,
int Len1,
const System::UnicodeString S2,
int Len2,
bool CheckVolumeCase = false);
參數(shù):
S1: 要比較的文件名字符串1坟奥,UnicodeString 類(lèi)型入撒;
S2: 要比較的文件名字符串2荆烈,UnicodeString 類(lèi)型诈胜;
CheckVolumeCase: 是否檢查文件系統(tǒng)是否區(qū)分大小寫(xiě)幕随;
返回值:
0: S1==S2
>0: S1>S2
<0: S1<S2
- 比較兩個(gè)文件名蚁滋,使用當(dāng)前的地區(qū)和語(yǔ)言;
- 如果 CheckVolumeCase 為 false赘淮,在 Windows 操作系統(tǒng)里面不區(qū)分大小寫(xiě)辕录,在 Linux / MAC OS 里面區(qū)分大小寫(xiě);
- 如果 CheckVolumeCase 為 true梢卸,檢查 S1 和 S2 所在的文件系統(tǒng)是否區(qū)分大小寫(xiě)走诞,如果 S1 和 S2 所在文件系統(tǒng)當(dāng)中,存在區(qū)分大小寫(xiě)的系統(tǒng)蛤高,就按照區(qū)分大小寫(xiě)比較蚣旱;
- 這個(gè)函數(shù)的參數(shù)都是 UnicodeString 類(lèi)型的了碑幅,雖然函數(shù)名以 Ansi 開(kāi)頭,參數(shù)為 AnsiString 類(lèi)型的函數(shù)都移到 System.AnsiStrings.hpp 這個(gè)頭文件里面了塞绿,參數(shù)為 AnsiString 類(lèi)型的函數(shù)都看作過(guò)時(shí)的函數(shù)沟涨,不建議使用了。
例子:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int r = Sysutils::AnsiCompareFileName(Edit1->Text, Edit2->Text);
if(r > 0)
ShowMessage(Edit1->Text + L" > " + Edit2->Text);
else if(r < 0)
ShowMessage(Edit1->Text + L" < " + Edit2->Text);
else
ShowMessage(Edit1->Text + L" = " + Edit2->Text);
}
運(yùn)行結(jié)果:
- Edit1 輸入
d:\abc\ΩΠ\你好ā
Edit2 輸入D:\ABC\ωπ\(zhòng)你好ā
點(diǎn)擊按鈕 Button1异吻,彈出對(duì)話框:d:\abc\ΩΠ\你好ā = D:\ABC\ωπ\(zhòng)你好ā
說(shuō)明在 Windows 操作系統(tǒng)里面文件名不區(qū)分大小寫(xiě)裹赴,這兩個(gè)文件名是相同的; - Edit1 輸入 d:\abc\def
Edit2 輸入 D:\ABC\defg
點(diǎn)擊按鈕 Button1涧黄,彈出對(duì)話框:d:\abc\def < D:\ABC\defg
- Edit1 輸入 d:\abc\defh
Edit2 輸入 D:\ABC\defg
點(diǎn)擊按鈕 Button1篮昧,彈出對(duì)話框:d:\abc\defh > D:\ABC\defg
通過(guò) 1., 2. 和 3. 可以看到,大寫(xiě)和小寫(xiě)認(rèn)為是相同的笋妥,字符串長(zhǎng)短不同懊昨,或者字符不同比較的結(jié)果為不同 (大于或小于)。
相關(guān):
- System::Sysutils::AnsiCompareFileName
- System::Sysutils::SameFileName
- System::Sysutils::ExpandFileName
- System::Sysutils::ExpandFileNameCase
- System::Sysutils::ExpandUNCFileName
- System::Sysutils::AnsiCompareStr
- System::Sysutils::AnsiCompareText
- System::Sysutils::AnsiStrComp
- System::Sysutils::AnsiStrIComp
- System::Sysutils::AnsiStrLComp
- System::Sysutils::AnsiStrLIComp
- System::Sysutils::CompareMem
- System::Sysutils::CompareStr
- System::Sysutils::CompareText
- System::Sysutils::StrComp
- System::Sysutils::StrIComp
- System::Sysutils::StrLComp
- System::Sysutils::StrLIComp
- System::Sysutils::WideCompareStr
- System::Sysutils::WideCompareText
- System::Sysutils::GetCurrentDir
- System::Sysutils::SetCurrentDir
- System::Sysutils::GetHomePath
- System::Sysutils::ChangeFileExt
- System::Sysutils::ChangeFilePath
- System::Sysutils::ExtractFileDir
- System::Sysutils::ExtractFileDrive
- System::Sysutils::ExtractFileExt
- System::Sysutils::ExtractFileName
- System::Sysutils::ExtractFilePath
- System::Sysutils::ExtractRelativePath
- System::Sysutils::ExtractShortPathName
- System::Sysutils
- System::Ioutils::TPath
- System::Ioutils
- std::strcmp, std::_strcmp, std::_fstrcmp, std::_tcscmp, std::wcscmp
- std::strncmp, std::_fstrncmp, std::_tcsncmp, std::_tcsnccmp, std::wcsncmp
- std::stricmp, std::_stricmp, std::_fstricmp, std::strcmpi, std::_strcmpi, std::_tcsicmp, std::_tcscmpi, std::_wcsicmp, std::wcscmpi, std::_wcscmpi
- std::strnicmp, std::_strnicmp, std::_fstrnicmp, std::strncmpi, std::_tcsnicmp, std::_tcsncicmp, std::_tcsncmpi, std::_wcsnicmp, std::wcsncmpi, std::_wcsncmpi
- <cstring>
- std::_fullpath, std::_tfullpath, std::_wfullpath
- std::_makepath, std::_tmakepath, std::_wmakepath
- std::_splitpath, std::_tsplitpath, std::_wsplitpath
- <cstdlib>
C++ Builder 參考手冊(cè) ? System::Sysutils ? AnsiCompareFileName