C++ Builder 參考手冊 ➙ System::Sysutils ➙ FindNext
查找下一個符合條件的文件
頭文件:#include <System.SysUtils.hpp>
命名空間:System::Sysutils
函數原型:
int __fastcall FindNext(TSearchRec &F);
參數:
- F:函數 FindFirst 返回的 TSearchRec 類型的結構體:
返回值:
- 0:找到符合條件的文件或文件夾,通過參數 F 返回找到的文件;
- 不等於 0:沒找到符合條件的文件夾或文件夾
- 繼續調用 FindNext 可以繼續查找下一個符合條件的文件
- 查找結束時,必須用函數 FindClose 結束查找,釋放佔用的資源
例子:把 C:\Windows 文件夾裏面的內容顯示在 TStringGrid 裏面
void __fastcall TForm1::Button1Click(TObject *Sender)
{
StringGrid1->RowCount = 2;
StringGrid1->Cells[0][0] = L"文件名";
StringGrid1->Cells[1][0] = L"大小";
StringGrid1->Cells[2][0] = L"時間";
StringGrid1->Cells[3][0] = L"屬性";
int iRowNo = 1;
TSearchRec sr;
if(FindFirst(L"C:\\Windows\\*.*", faAnyFile, sr) == 0)
{
do{
UnicodeString sAttr;
sAttr += sr.Attr & faReadOnly ? L"r" : L"-";
sAttr += sr.Attr & faArchive ? L"a" : L"-";
sAttr += sr.Attr & faHidden ? L"h" : L"-";
sAttr += sr.Attr & faSysFile ? L"s" : L"-";
StringGrid1->RowCount = iRowNo + 1;
StringGrid1->FixedRows = 1;
StringGrid1->Cells[0][iRowNo] = sr.Name;
StringGrid1->Cells[1][iRowNo] = sr.Attr & faDirectory ? String(L"<文件夾>") : IntToStr(sr.Size);
StringGrid1->Cells[2][iRowNo] = FormatDateTime(L"yyyy/mm/dd hh:nn:ss.zzz",sr.TimeStamp);
StringGrid1->Cells[3][iRowNo] = sAttr;
iRowNo++;
} while(FindNext(sr) == 0);
FindClose(sr);
}
}
運行結果
相關:
- System::Sysutils::FindFirst
- System::Sysutils::FindNext
- System::Sysutils::FindClose
- System::Sysutils::TSearchRec
- System::Sysutils::FileSearch
- System::Sysutils::FileExists
- System::Sysutils::DirectoryExists
- System::Sysutils::FileAge
- System::Sysutils::FileGetDate
- System::Sysutils::FileGetDateTimeInfo
- System::Sysutils::FileSetDate
- System::Sysutils::FileGetAttr
- System::Sysutils::FileSetAttr
- System::Sysutils::FileIsReadOnly
- System::Sysutils::FileSetReadOnly
- System::Sysutils::CreateDir
- System::Sysutils::ForceDirectories
- System::Sysutils::RemoveDir
- System::Sysutils::GetCurrentDir
- System::Sysutils::SetCurrentDir
- System::Sysutils::DeleteFile
- System::Sysutils::RenameFile
- System::Sysutils::IsAssembly
- System::Sysutils::DiskFree
- System::Sysutils::DiskSize
- System::Sysutils::FileDateToDateTime
- System::Sysutils::DateTimeToFileDate
- System::Sysutils
C++ Builder 參考手冊 ➙ System::Sysutils ➙ FindNext