Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Provádí místní vyhledávání souborů a je základní třídou pro CGopherFileFind a CFtpFileFind, která provádí vyhledávání internetových souborů.
Syntaxe
class CFileFind : public CObject
Členové
Veřejné konstruktory
| Název | Popis |
|---|---|
CFileFind::CFileFind |
CFileFind Vytvoří objekt. |
Veřejné metody
| Název | Popis |
|---|---|
CFileFind::Close |
Zavře žádost o vyhledávání. |
CFileFind::FindFile |
Vyhledá zadaný název souboru v adresáři. |
CFileFind::FindNextFile |
Pokračuje v hledání souborů z předchozího volání FindFile. |
CFileFind::GetCreationTime |
Získá čas vytvoření souboru. |
CFileFind::GetFileName |
Získá název nalezeného souboru včetně přípony. |
CFileFind::GetFilePath |
Získá celou cestu nalezeného souboru. |
CFileFind::GetFileTitle |
Získá název nalezeného souboru. Název neobsahuje příponu. |
CFileFind::GetFileURL |
Získá adresu URL nalezeného souboru včetně cesty k souboru. |
CFileFind::GetLastAccessTime |
Získá čas posledního přístupu k souboru. |
CFileFind::GetLastWriteTime |
Získá čas poslední změny a uložení souboru. |
CFileFind::GetLength |
Získá délku nalezeného souboru v bajtech. |
CFileFind::GetRoot |
Získá kořenový adresář nalezeného souboru. |
CFileFind::IsArchived |
Určuje, jestli je nalezený soubor archivován. |
CFileFind::IsCompressed |
Určuje, zda je nalezený soubor komprimován. |
CFileFind::IsDirectory |
Určuje, zda nalezený soubor je adresář. |
CFileFind::IsDots |
Určuje, zda název nalezeného souboru má název "." nebo ".", což znamená, že je ve skutečnosti adresář. |
CFileFind::IsHidden |
Určuje, zda je nalezený soubor skrytý. |
CFileFind::IsNormal |
Určuje, zda je nalezený soubor normální (jinými slovy nemá žádné další atributy). |
CFileFind::IsReadOnly |
Určuje, jestli je nalezený soubor jen pro čtení. |
CFileFind::IsSystem |
Určuje, zda nalezený soubor je systémový soubor. |
CFileFind::IsTemporary |
Určuje, jestli je nalezený soubor dočasný. |
CFileFind::MatchesMask |
Označuje požadované atributy souboru, které se mají najít. |
Chráněné metody
| Název | Popis |
|---|---|
CFileFind::CloseContext |
Zavře soubor určený aktuálním popisovačem hledání. |
Chráněné datové členy
| Název | Popis |
|---|---|
CFileFind::m_pTM |
Ukazatel na CAtlTransactionManager objekt. |
Poznámky
CFileFind obsahuje členské funkce, které začínají hledáním, vyhledávají soubor a vrací název, název nebo cestu k souboru. Pro vyhledávání v internetu vrátí členská funkce GetFileURL adresu URL souboru.
CFileFind je základní třída pro dvě další třídy MFC navržené pro vyhledávání konkrétních typů serverů: CGopherFileFind pracuje speciálně s gopher servery a CFtpFileFind pracuje speciálně se servery FTP. Tyto tři třídy společně poskytují bezproblémový mechanismus, který umožňuje klientovi najít soubory bez ohledu na protokol serveru, typ souboru nebo umístění na místním počítači nebo na vzdáleném serveru.
Následující kód zobrazí výčet všech souborů v aktuálním adresáři a vytiskne název každého souboru:
CFileFind finder;
BOOL bWorking = finder.FindFile(_T("*.*"));
while (bWorking)
{
bWorking = finder.FindNextFile();
TRACE(_T("%s\n"), (LPCTSTR)finder.GetFileName());
}
Aby byl příklad jednoduchý, tento kód používá třídu standardní knihovny cout jazyka C++. cout Řádek může být nahrazen voláním CListBox::AddString, například v programu s grafickým uživatelským rozhraním.
Další informace o tom, jak používat CFileFind a další třídy WinInet, naleznete v článku Internetové programování s WinInet.
Hierarchie dědičnosti
CFileFind
Požadavky
Záhlaví: afx.h
CFileFind::CFileFind
Tato členová funkce je volána při vytváření objektu CFileFind .
CFileFind();
CFileFind(CAtlTransactionManager* pTM);
Parametry
pTM
Ukazatel na objekt CAtlTransactionManager
Příklad
Podívejte se na příklad pro CFileFind::GetFileName.
CFileFind::Close
Voláním této členské funkce ukončíte vyhledávání, obnovíte kontext a uvolníte všechny prostředky.
void Close();
Poznámky
Po volání Closenení nutné vytvořit novou CFileFind instanci před voláním FindFile pro zahájení nového vyhledávání.
Příklad
Podívejte se na příklad pro CFileFind::GetFileName.
CFileFind::CloseContext
Zavře soubor určený aktuálním popisovačem hledání.
virtual void CloseContext();
Poznámky
Zavře soubor určený aktuální hodnotou popisovače hledání. Přepište tuto funkci, aby se změnilo výchozí chování.
Chcete-li načíst platný popisovač vyhledávání, musíte alespoň jednou zavolat FindFile funkce nebo FindNextFile funkce. FindNextFile Funkce FindFile používají popisovač vyhledávání k vyhledání souborů s názvy, které odpovídají danému názvu.
CFileFind::FindFile
Voláním této členské funkce otevřete hledání souborů.
virtual BOOL FindFile(
LPCTSTR pstrName = NULL,
DWORD dwUnused = 0);
Parametry
pstrName
Ukazatel na řetězec obsahující název souboru, který chcete najít. Pokud předáte NULL pstrName, FindFile provede vyhledávání zástupným znakem (*.*).
dwUnused
Vyhrazeno pro provádění FindFile polymorfních s odvozenými třídami. Musí být 0.
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0. Chcete-li získat rozšířené informace o chybě, zavolejte funkci GetLastErrorWin32 .
Poznámky
Po volání FindFile pro zahájení hledání souborů voláním FindNextFile načtěte další soubory. Před voláním některé z následujících členských funkcí atributu je nutné volat FindNextFile alespoň jednou:
Příklad
Podívejte se na příklad pro CFileFind::IsDirectory.
CFileFind::FindNextFile
Voláním této členské funkce pokračujte v hledání souborů z předchozího volání FindFile.
virtual BOOL FindNextFile();
Návratová hodnota
Nenulové, pokud jsou k dispozici více souborů; Nula, pokud nalezený soubor je poslední v adresáři nebo pokud došlo k chybě. Chcete-li získat rozšířené informace o chybě, zavolejte funkci GetLastErrorWin32 . Pokud je nalezen soubor posledním souborem v adresáři nebo pokud nelze najít žádné odpovídající soubory, GetLastError vrátí ERROR_NO_MORE_FILESfunkce .
Poznámky
Před voláním některé z následujících členských funkcí atributu je nutné volat FindNextFile alespoň jednou:
FindNextFile zabalí funkci FindNextFileWin32 .
Příklad
Podívejte se na příklad pro CFileFind::IsDirectory.
CFileFind::GetCreationTime
Voláním této členské funkce získáte čas vytvoření zadaného souboru.
virtual BOOL GetCreationTime(FILETIME* pTimeStamp) const;
virtual BOOL GetCreationTime(CTime& refTime) const;
Parametry
pTimeStamp
Ukazatel na FILETIME strukturu obsahující čas vytvoření souboru.
refTime
Odkaz na CTime objekt.
Návratová hodnota
Nenulové, pokud je úspěšné; 0 v případě neúspěchu. GetCreationTime vrátí hodnotu 0 pouze v případě, že FindNextFile u tohoto CFileFind objektu nebyl nikdy volána.
Poznámky
Před voláním musíte zavolat FindNextFile GetCreationTimealespoň jednou .
Poznámka:
Ne všechny systémy souborů používají stejnou sémantiku k implementaci časového razítka vráceného touto funkcí. Tato funkce může vrátit stejnou hodnotu vrácenou jinými funkcemi časového razítka, pokud základní systém souborů nebo server nepodporuje zachování atributu času. Informace o formátech času najdete ve WIN32_FIND_DATA struktuře. V některých operačních systémech se vrácený čas nachází v místním časovém pásmu počítače. Další informace najdete v rozhraní API Win32 FileTimeToLocalFileTime .
Příklad
Podívejte se na příklad pro CFileFind::GetLength.
CFileFind::GetFileName
Voláním této členské funkce získáte název nalezeného souboru.
virtual CString GetFileName() const;
Návratová hodnota
Název naposledy nalezeného souboru.
Poznámky
Před voláním GetFileName je nutné volat FindNextFile alespoň jednou.
GetFileName je jednou ze tří CFileFind členských funkcí, které vrací určitou formu názvu souboru. Následující seznam popisuje tři a jejich různé způsoby:
GetFileNamevrátí název souboru, včetně přípony. Například voláníGetFileNamepro vygenerování zprávy uživatele o souboruc:\myhtml\myfile.txtvrátí názevmyfile.txtsouboru .GetFilePathvrátí celou cestu k souboru. Například voláníGetFilePathpro vygenerování zprávy uživatele o souboruc:\myhtml\myfile.txtvrátí cestuc:\myhtml\myfile.txtk souboru .GetFileTitlevrátí název souboru s výjimkou přípony souboru. Volání proGetFileTitlevygenerování zprávy o souboruc:\myhtml\myfile.txtnapříklad vrátí názevmyfilesouboru .
Příklad
CFileFind finder;
static const TCHAR szFileToFind[] = _T("C:\\WINDOWS\\SYSTEM.INI");
BOOL bResult = finder.FindFile(szFileToFind);
if (bResult)
{
finder.FindNextFile();
TRACE(_T("Root of %s is %s\n"), szFileToFind,
(LPCTSTR)finder.GetRoot());
TRACE(_T("Title of %s is %s\n"), szFileToFind,
(LPCTSTR)finder.GetFileTitle());
TRACE(_T("Path of %s is %s\n"), szFileToFind,
(LPCTSTR)finder.GetFilePath());
TRACE(_T("URL of %s is %s\n"), szFileToFind,
(LPCTSTR)finder.GetFileURL());
TRACE(_T("Name of %s is %s\n"), szFileToFind,
(LPCTSTR)finder.GetFileName());
finder.Close();
}
else
{
TRACE(_T("You have no %s file.\n"), szFileToFind);
}
CFileFind::GetFilePath
Voláním této členské funkce získáte úplnou cestu k zadanému souboru.
virtual CString GetFilePath() const;
Návratová hodnota
Cesta zadaného souboru.
Poznámky
Před voláním musíte zavolat FindNextFile GetFilePathalespoň jednou .
GetFilePath je jednou ze tří CFileFind členských funkcí, které vrací určitou formu názvu souboru. Následující seznam popisuje tři a jejich různé způsoby:
GetFileNamevrátí název souboru, včetně přípony. Například voláníGetFileNamepro vygenerování zprávy uživatele o souboruc:\myhtml\myfile.txtvrátí názevmyfile.txtsouboru .GetFilePathvrátí celou cestu k souboru. Například voláníGetFilePathpro vygenerování zprávy uživatele o souboruc:\myhtml\myfile.txtvrátí cestuc:\myhtml\myfile.txtk souboru .GetFileTitle vrátí název souboru s výjimkou přípony souboru. Volání pro
GetFileTitlevygenerování zprávy o souboruc:\myhtml\myfile.txtnapříklad vrátí názevmyfilesouboru .
Příklad
Podívejte se na příklad pro CFileFind::GetFileName.
CFileFind::GetFileTitle
Voláním této členské funkce získáte název nalezeného souboru.
virtual CString GetFileTitle() const;
Návratová hodnota
Název souboru.
Poznámky
Před voláním musíte zavolat FindNextFile GetFileTitlealespoň jednou .
GetFileTitle je jednou ze tří CFileFind členských funkcí, které vrací určitou formu názvu souboru. Následující seznam popisuje tři a jejich různé způsoby:
GetFileNamevrátí název souboru, včetně přípony. Například voláníGetFileNamepro vygenerování zprávy uživatele o souboruc:\myhtml\myfile.txtvrátí názevmyfile.txtsouboru .GetFilePathvrátí celou cestu k souboru. Například voláníGetFilePathpro vygenerování zprávy uživatele o souboruc:\myhtml\myfile.txtvrátí cestu k souboru c:\myhtml\myfile.txt.GetFileTitlevrátí název souboru s výjimkou přípony souboru. Volání proGetFileTitlevygenerování zprávy o souboruc:\myhtml\myfile.txtnapříklad vrátí názevmyfilesouboru .
Příklad
Podívejte se na příklad pro CFileFind::GetFileName.
CFileFind::GetFileURL
Voláním této členské funkce načtěte zadanou adresu URL.
virtual CString GetFileURL() const;
Návratová hodnota
Úplná adresa URL.
Poznámky
Před voláním musíte zavolat FindNextFile GetFileURLalespoň jednou .
GetFileURL je podobná členské funkci GetFilePaths tím rozdílem, že vrací adresu URL ve formuláři file://path. Voláním například GetFileURL získáte úplnou adresu URL pro myfile.txt vrácení adresy URL file://c:\myhtml\myfile.txt.
Příklad
Podívejte se na příklad pro CFileFind::GetFileName.
CFileFind::GetLastAccessTime
Voláním této členské funkce získáte čas posledního přístupu k zadanému souboru.
virtual BOOL GetLastAccessTime(CTime& refTime) const;
virtual BOOL GetLastAccessTime(FILETIME* pTimeStamp) const;
Parametry
refTime
Odkaz na CTime objekt.
pTimeStamp
Ukazatel na FILETIME strukturu obsahující čas posledního přístupu k souboru.
Návratová hodnota
Nenulové, pokud je úspěšné; 0 v případě neúspěchu. GetLastAccessTime vrátí hodnotu 0 pouze v případě, že FindNextFile u tohoto CFileFind objektu nebyl nikdy volána.
Poznámky
Před voláním musíte zavolat FindNextFile GetLastAccessTimealespoň jednou .
Poznámka:
Ne všechny systémy souborů používají stejnou sémantiku k implementaci časového razítka vráceného touto funkcí. Tato funkce může vrátit stejnou hodnotu vrácenou jinými funkcemi časového razítka, pokud základní systém souborů nebo server nepodporuje zachování atributu času. Informace o formátech času najdete ve WIN32_FIND_DATA struktuře. V některých operačních systémech se vrácený čas nachází v místním časovém pásmu počítače. Další informace najdete v rozhraní API Win32 FileTimeToLocalFileTime .
Příklad
Podívejte se na příklad pro CFileFind::GetLength.
CFileFind::GetLastWriteTime
Voláním této členské funkce získáte čas poslední změny souboru.
virtual BOOL GetLastWriteTime(FILETIME* pTimeStamp) const;
virtual BOOL GetLastWriteTime(CTime& refTime) const;
Parametry
pTimeStamp
Ukazatel na FILETIME strukturu obsahující čas posledního zápisu souboru.
refTime
Odkaz na CTime objekt.
Návratová hodnota
Nenulové, pokud je úspěšné; 0 v případě neúspěchu. GetLastWriteTime vrátí hodnotu 0 pouze v případě, že FindNextFile u tohoto CFileFind objektu nebyl nikdy volána.
Poznámky
Před voláním musíte zavolat FindNextFile GetLastWriteTimealespoň jednou .
Poznámka:
Ne všechny systémy souborů používají stejnou sémantiku k implementaci časového razítka vráceného touto funkcí. Tato funkce může vrátit stejnou hodnotu vrácenou jinými funkcemi časového razítka, pokud základní systém souborů nebo server nepodporuje zachování atributu času. Informace o formátech času najdete ve WIN32_FIND_DATA struktuře. V některých operačních systémech se vrácený čas nachází v místním časovém pásmu počítače. Další informace najdete v rozhraní API Win32 FileTimeToLocalFileTime .
Příklad
Podívejte se na příklad pro CFileFind::GetLength.
CFileFind::GetLength
Voláním této členské funkce získáte délku nalezeného souboru v bajtech.
ULONGLONG GetLength() const;
Návratová hodnota
Délka nalezeného souboru v bajtech.
Poznámky
Před voláním musíte zavolat FindNextFile GetLengthalespoň jednou .
GetLength používá strukturu WIN32_FIND_DATA Win32 k získání a vrácení hodnoty velikosti souboru v bajtech.
Poznámka:
Od mfc 7.0 GetLength podporuje 64bitové celočíselné typy. Dříve existující kód vytvořený s touto novější verzí knihovny může vést k zkrácení upozornění.
Příklad
// This code fragment prints out a very verbose directory
// listing for all the files in the root directory on the
// C: drive. After the file's name, each attribute of the
// file is printed, as are the creation, last access, and
// last write times.
CFileFind finder;
BOOL bWorking = finder.FindFile(_T("C:\\*.*"));
while (bWorking)
{
bWorking = finder.FindNextFile();
_tprintf_s(_T("%s\n\t"), (LPCTSTR)finder.GetFileName());
_tprintf_s(_T("%c"), finder.IsArchived() ? 'A' : 'a');
_tprintf_s(_T("%c"), finder.IsCompressed() ? 'C' : 'c');
_tprintf_s(_T("%c"), finder.IsHidden() ? 'H' : 'h');
_tprintf_s(_T("%c"), finder.IsNormal() ? 'N' : 'n');
_tprintf_s(_T("%c"), finder.IsReadOnly() ? 'R' : 'r');
_tprintf_s(_T("%c"), finder.IsSystem() ? 'S' : 's');
_tprintf_s(_T("%c"), finder.IsTemporary() ? 'T' : 't');
_tprintf_s(_T("\t%I64u byte(s)\n"), finder.GetLength());
CTime tempTime;
CString str;
_tprintf_s(_T("\tCreated : "));
if (finder.GetCreationTime(tempTime))
{
str = tempTime.Format(_T("%c"));
_tprintf_s(_T("%s\n"), (LPCTSTR) str);
}
else
{
_tprintf_s(_T("(unavailable)\n"));
}
_tprintf_s(_T("\tLast Access: "));
if (finder.GetLastAccessTime(tempTime))
{
str = tempTime.Format(_T("%c"));
_tprintf_s(_T("%s\n"), (LPCTSTR) str);
}
else
{
_tprintf_s(_T("(unavailable)\n"));
}
_tprintf_s(_T("\tLast Write : "));
if (finder.GetLastWriteTime(tempTime))
{
str = tempTime.Format(_T("%c"));
_tprintf_s(_T("%s\n"), (LPCTSTR) str);
}
else
{
_tprintf_s(_T("(unavailable)\n"));
}
_tprintf_s(_T("\n"));
}
CFileFind::GetRoot
Voláním této členské funkce získáte kořen nalezeného souboru.
virtual CString GetRoot() const;
Návratová hodnota
Kořen aktivního vyhledávání.
Poznámky
Před voláním musíte zavolat FindNextFile GetRootalespoň jednou .
Tato členová funkce vrátí specifikátor jednotky a název cesty sloužící k zahájení hledání. Například volání FindFile s *.dat výsledky vrácení GetRoot prázdného řetězce. Předání cesty, například c:\windows\system\*.dll, výsledkům FindFile GetRoot vracejícím c:\windows\system\.
Příklad
Podívejte se na příklad pro CFileFind::GetFileName.
CFileFind::IsArchived
Voláním této členské funkce určíte, jestli je nalezený soubor archivován.
BOOL IsArchived() const;
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
Poznámky
Aplikace označí archivní soubor, který se má zálohovat nebo odebrat, pomocí FILE_ATTRIBUTE_ARCHIVEatributu souboru identifikovaného ve struktuře WIN32_FIND_DATA .
Před voláním musíte zavolat FindNextFile IsArchivedalespoň jednou .
Úplný seznam atributů souborů najdete v členské funkci MatchesMask .
Příklad
Podívejte se na příklad pro CFileFind::GetLength.
CFileFind::IsCompressed
Voláním této členské funkce určíte, jestli je nalezený soubor komprimovaný.
BOOL IsCompressed() const;
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
Poznámky
Komprimovaný soubor je označen atributem FILE_ATTRIBUTE_COMPRESSEDsouboru identifikovaným ve struktuře WIN32_FIND_DATA . U souboru tento atribut označuje, že všechna data v souboru jsou komprimovaná. U adresáře tento atribut označuje, že komprese je výchozí pro nově vytvořené soubory a podadresáře.
Před voláním musíte zavolat FindNextFile IsCompressedalespoň jednou .
Úplný seznam atributů souborů najdete v členské funkci MatchesMask .
Příklad
Podívejte se na příklad pro CFileFind::GetLength.
CFileFind::IsDirectory
Voláním této členské funkce určíte, jestli je nalezený soubor adresářem.
BOOL IsDirectory() const;
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
Poznámky
Soubor, který je adresářem, je označen FILE_ATTRIBUTE_DIRECTORY atributem souboru identifikovaným ve struktuře WIN32_FIND_DATA .
Před voláním musíte zavolat FindNextFile IsDirectoryalespoň jednou .
Úplný seznam atributů souborů najdete v členské funkci MatchesMask .
Příklad
Tento malý program rekurzuje každý adresář na jednotce C:\ a vytiskne název adresáře.
void Recurse(LPCTSTR pstr)
{
CFileFind finder;
// build a string with wildcards
CString strWildcard(pstr);
strWildcard += _T("\\*.*");
// start working for files
BOOL bWorking = finder.FindFile(strWildcard);
while (bWorking)
{
bWorking = finder.FindNextFile();
// skip . and .. files; otherwise, we'd
// recur infinitely!
if (finder.IsDots())
continue;
// if it's a directory, recursively search it
if (finder.IsDirectory())
{
CString str = finder.GetFilePath();
TRACE(_T("%s\n"), (LPCTSTR)str);
Recurse(str);
}
}
finder.Close();
}
void PrintDirs()
{
Recurse(_T("C:"));
}
CFileFind::IsDots
Voláním této členské funkce otestujete aktuální adresář a nadřazené značky adresáře při iterování prostřednictvím souborů.
virtual BOOL IsDots() const;
Návratová hodnota
Nenulové, pokud nalezený soubor obsahuje název "." nebo ".", což znamená, že nalezený soubor je ve skutečnosti adresář. Jinak 0.
Poznámky
Před voláním musíte zavolat FindNextFile IsDotsalespoň jednou .
Příklad
Podívejte se na příklad pro CFileFind::IsDirectory.
CFileFind::IsHidden
Voláním této členské funkce určíte, jestli je nalezený soubor skrytý.
BOOL IsHidden() const;
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
Poznámky
Skryté soubory, které jsou označeny atributem FILE_ATTRIBUTE_HIDDENsouboru identifikované ve struktuře WIN32_FIND_DATA . Skrytý soubor není součástí běžného seznamu adresářů.
Před voláním musíte zavolat FindNextFile IsHiddenalespoň jednou .
Úplný seznam atributů souborů najdete v členské funkci MatchesMask .
Příklad
Podívejte se na příklad pro CFileFind::GetLength.
CFileFind::IsNormal
Voláním této členské funkce určíte, jestli je nalezený soubor normálním souborem.
BOOL IsNormal() const;
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
Poznámky
Soubory označené atributem FILE_ATTRIBUTE_NORMALsouboru identifikovaným ve WIN32_FIND_DATA struktuře. Normální soubor neobsahuje žádné další atributy. Všechny ostatní atributy souboru tento atribut přepíší.
Před voláním musíte zavolat FindNextFile IsNormalalespoň jednou .
Úplný seznam atributů souborů najdete v členské funkci MatchesMask .
Příklad
Podívejte se na příklad pro CFileFind::GetLength.
CFileFind::IsReadOnly
Voláním této členské funkce určíte, jestli je nalezený soubor jen pro čtení.
BOOL IsReadOnly() const;
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
Poznámky
Soubor jen pro čtení je označen atributem FILE_ATTRIBUTE_READONLYsouboru identifikovaným ve struktuře WIN32_FIND_DATA . Aplikace můžou takový soubor číst, ale nemůžou do něj zapisovat ani je odstraňovat.
Před voláním musíte zavolat FindNextFile IsReadOnlyalespoň jednou .
Úplný seznam atributů souborů najdete v členské funkci MatchesMask .
Příklad
Podívejte se na příklad pro CFileFind::GetLength.
CFileFind::IsSystem
Voláním této členské funkce určíte, jestli je nalezený soubor systémovým souborem.
BOOL IsSystem() const;
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
Poznámky
Systémový soubor je označen atributem FILE_ATTRIBUTE_SYSTEMsouboru identifikovaným ve struktuře WIN32_FIND_DATA . Systémový soubor je součástí operačního systému nebo je používán výhradně operačním systémem.
Před voláním musíte zavolat FindNextFile IsSystemalespoň jednou .
Úplný seznam atributů souborů najdete v členské funkci MatchesMask .
Příklad
Podívejte se na příklad pro CFileFind::GetLength.
CFileFind::IsTemporary
Voláním této členské funkce určíte, jestli je nalezený soubor dočasným souborem.
BOOL IsTemporary() const;
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
Poznámky
Dočasný soubor je označen atributem FILE_ATTRIBUTE_TEMPORARYsouboru identifikovaným ve WIN32_FIND_DATA struktuře. Dočasný soubor se používá pro dočasné úložiště. Aplikace by měly do souboru zapisovat pouze v případě, že je to naprosto nezbytné. Většina dat souboru zůstává v paměti, aniž by se vyprázdnila na médiu, protože soubor bude brzy odstraněn.
Před voláním musíte zavolat FindNextFile IsTemporaryalespoň jednou .
Úplný seznam atributů souborů najdete v členské funkci MatchesMask .
Příklad
Podívejte se na příklad pro CFileFind::GetLength.
CFileFind::m_pTM
Ukazatel na CAtlTransactionManager objekt.
CAtlTransactionManager* m_pTM;
Poznámky
CFileFind::MatchesMask
Voláním této členské funkce otestujete atributy souboru nalezeného souboru.
virtual BOOL MatchesMask(DWORD dwMask) const;
Parametry
dwMask
Určuje jeden nebo více atributů souboru identifikovaných ve WIN32_FIND_DATA struktuře nalezeného souboru. Pokud chcete vyhledat více atributů, použijte bitový operátor OR (|). Jakákoli kombinace následujících atributů je přijatelná:
FILE_ATTRIBUTE_ARCHIVESoubor je archivní soubor. Aplikace tento atribut používají k označení souborů pro zálohování nebo odebrání.FILE_ATTRIBUTE_COMPRESSEDSoubor nebo adresář je komprimovaný. U souboru to znamená, že všechna data v souboru jsou komprimovaná. U adresáře to znamená, že komprese je výchozí pro nově vytvořené soubory a podadresáře.FILE_ATTRIBUTE_DIRECTORYSoubor je adresář.FILE_ATTRIBUTE_NORMALSoubor nemá žádné další atributy. Tento atribut je platný pouze v případě, že se používá samostatně. Všechny ostatní atributy souboru tento atribut přepíší.FILE_ATTRIBUTE_HIDDENSoubor je skrytý. Není zahrnuta do běžného seznamu adresářů.FILE_ATTRIBUTE_READONLYSoubor je jen pro čtení. Aplikace můžou soubor číst, ale nemůžou do něj zapisovat ani je odstraňovat.FILE_ATTRIBUTE_SYSTEMSoubor je součástí operačního systému nebo ho používá výhradně.FILE_ATTRIBUTE_TEMPORARYSoubor se používá pro dočasné úložiště. Aplikace by měly do souboru zapisovat pouze v případě, že je to naprosto nezbytné. Většina dat souboru zůstává v paměti, aniž by se vyprázdnila na médiu, protože soubor bude brzy odstraněn.
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0. Chcete-li získat rozšířené informace o chybě, zavolejte funkci GetLastErrorWin32 .
Poznámky
Před voláním musíte zavolat FindNextFile MatchesMaskalespoň jednou .
Příklad
// This code fragment shows all of the files in the root directory
// of drive C: which have either the hidden attribute or the system
// attribute, or both.
CFileFind finder;
BOOL bWorking = finder.FindFile(_T("C:\\*.*"));
while (bWorking)
{
bWorking = finder.FindNextFile();
if (finder.MatchesMask(FILE_ATTRIBUTE_HIDDEN |
FILE_ATTRIBUTE_SYSTEM))
{
_tprintf_s(_T("%s\n"), (LPCTSTR) finder.GetFileName());
}
}
Viz také
CObject Třída
Graf hierarchie
CFtpFileFind Třída
CGopherFileFind Třída
CInternetFile Třída
CGopherFile Třída
CHttpFile Třída