Sdílet prostřednictvím


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

CObject

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:

  • GetFileName vrátí název souboru, včetně přípony. Například volání GetFileName pro vygenerování zprávy uživatele o souboru c:\myhtml\myfile.txt vrátí název myfile.txtsouboru .

  • GetFilePath vrátí celou cestu k souboru. Například volání GetFilePath pro vygenerování zprávy uživatele o souboru c:\myhtml\myfile.txt vrátí cestu c:\myhtml\myfile.txtk souboru .

  • GetFileTitle vrátí název souboru s výjimkou přípony souboru. Volání pro GetFileTitle vygenerování zprávy o souboru c:\myhtml\myfile.txt například vrátí název myfilesouboru .

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:

  • GetFileName vrátí název souboru, včetně přípony. Například volání GetFileName pro vygenerování zprávy uživatele o souboru c:\myhtml\myfile.txt vrátí název myfile.txtsouboru .

  • GetFilePath vrátí celou cestu k souboru. Například volání GetFilePath pro vygenerování zprávy uživatele o souboru c:\myhtml\myfile.txt vrátí cestu c:\myhtml\myfile.txtk souboru .

  • GetFileTitle vrátí název souboru s výjimkou přípony souboru. Volání pro GetFileTitle vygenerování zprávy o souboru c:\myhtml\myfile.txt například vrátí název myfilesouboru .

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:

  • GetFileName vrátí název souboru, včetně přípony. Například volání GetFileName pro vygenerování zprávy uživatele o souboru c:\myhtml\myfile.txt vrátí název myfile.txtsouboru .

  • GetFilePath vrátí celou cestu k souboru. Například volání GetFilePath pro vygenerování zprávy uživatele o souboru c:\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í pro GetFileTitle vygenerování zprávy o souboru c:\myhtml\myfile.txt například vrátí název myfilesouboru .

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_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 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