CFileFind
Třída
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í Close
není 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 GetLastError
Win32 .
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 GetLastError
Win32 . 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_FILES
funkce .
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 FindNextFile
Win32 .
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
GetCreationTime
alespoň 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:
GetFileName
vrátí název souboru, včetně přípony. Například voláníGetFileName
pro vygenerování zprávy uživatele o souboruc:\myhtml\myfile.txt
vrátí názevmyfile.txt
souboru .GetFilePath
vrátí celou cestu k souboru. Například voláníGetFilePath
pro vygenerování zprávy uživatele o souboruc:\myhtml\myfile.txt
vrátí cestuc:\myhtml\myfile.txt
k souboru .GetFileTitle
vrátí název souboru s výjimkou přípony souboru. Volání proGetFileTitle
vygenerování zprávy o souboruc:\myhtml\myfile.txt
například vrátí názevmyfile
souboru .
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
GetFilePath
alespoň 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:
GetFileName
vrátí název souboru, včetně přípony. Například voláníGetFileName
pro vygenerování zprávy uživatele o souboruc:\myhtml\myfile.txt
vrátí názevmyfile.txt
souboru .GetFilePath
vrátí celou cestu k souboru. Například voláníGetFilePath
pro vygenerování zprávy uživatele o souboruc:\myhtml\myfile.txt
vrátí cestuc:\myhtml\myfile.txt
k souboru .GetFileTitle vrátí název souboru s výjimkou přípony souboru. Volání pro
GetFileTitle
vygenerování zprávy o souboruc:\myhtml\myfile.txt
například vrátí názevmyfile
souboru .
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
GetFileTitle
alespoň 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:
GetFileName
vrátí název souboru, včetně přípony. Například voláníGetFileName
pro vygenerování zprávy uživatele o souboruc:\myhtml\myfile.txt
vrátí názevmyfile.txt
souboru .GetFilePath
vrátí celou cestu k souboru. Například voláníGetFilePath
pro vygenerování zprávy uživatele o souboruc:\myhtml\myfile.txt
vrátí cestu k souboru c:\myhtml\myfile.txt.GetFileTitle
vrátí název souboru s výjimkou přípony souboru. Volání proGetFileTitle
vygenerování zprávy o souboruc:\myhtml\myfile.txt
například vrátí názevmyfile
souboru .
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
GetFileURL
alespoň jednou .
GetFileURL
je podobná členské funkci GetFilePath
s 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
GetLastAccessTime
alespoň 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
GetLastWriteTime
alespoň 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
GetLength
alespoň 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
GetRoot
alespoň 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_ARCHIVE
atributu souboru identifikovaného ve struktuře WIN32_FIND_DATA
.
Před voláním musíte zavolat FindNextFile
IsArchived
alespoň 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_COMPRESSED
souboru 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
IsCompressed
alespoň 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
IsDirectory
alespoň 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
IsDots
alespoň 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_HIDDEN
souboru 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
IsHidden
alespoň 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_NORMAL
souboru 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
IsNormal
alespoň 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_READONLY
souboru 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
IsReadOnly
alespoň 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_SYSTEM
souboru 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
IsSystem
alespoň 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_TEMPORARY
souboru 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
IsTemporary
alespoň 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_ARCHIVE
Soubor je archivní soubor. Aplikace tento atribut používají k označení souborů pro zálohování nebo odebrání.FILE_ATTRIBUTE_COMPRESSED
Soubor 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_DIRECTORY
Soubor je adresář.FILE_ATTRIBUTE_NORMAL
Soubor 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_HIDDEN
Soubor je skrytý. Není zahrnuta do běžného seznamu adresářů.FILE_ATTRIBUTE_READONLY
Soubor je jen pro čtení. Aplikace můžou soubor číst, ale nemůžou do něj zapisovat ani je odstraňovat.FILE_ATTRIBUTE_SYSTEM
Soubor je součástí operačního systému nebo ho používá výhradně.FILE_ATTRIBUTE_TEMPORARY
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.
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0. Chcete-li získat rozšířené informace o chybě, zavolejte funkci GetLastError
Win32 .
Poznámky
Před voláním musíte zavolat FindNextFile
MatchesMask
alespoň 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