Freigeben über


CFileFind-Klasse

Führt lokale Dateisuchen aus und ist die Basisklasse für CGopherFileFind und CFtpFileFind, für die Internetdateisuchen ausgeführt werden.

Syntax

class CFileFind : public CObject

Member

Öffentliche Konstruktoren

Name Beschreibung
CFileFind::CFileFind Erstellt ein CFileFind-Objekt.

Öffentliche Methoden

Name Beschreibung
CFileFind::Close Schließt die Suchanforderung.
CFileFind::FindFile Durchsucht ein Verzeichnis nach einem angegebenen Dateinamen.
CFileFind::FindNextFile Setzt eine Dateisuche aus einem vorherigen Aufruf fort.FindFile
CFileFind::GetCreationTime Ruft die Zeit ab, zu der die Datei erstellt wurde.
CFileFind::GetFileName Ruft den Namen einschließlich der Erweiterung der gefundenen Datei ab.
CFileFind::GetFilePath Ruft den gesamten Pfad der gefundenen Datei ab.
CFileFind::GetFileTitle Ruft den Titel der gefundenen Datei ab. Der Titel enthält die Erweiterung nicht.
CFileFind::GetFileURL Ruft die URL einschließlich des Dateipfads der gefundenen Datei ab.
CFileFind::GetLastAccessTime Ruft die Zeit ab, zu der die Datei zuletzt zugegriffen wurde.
CFileFind::GetLastWriteTime Ruft die Zeit ab, zu der die Datei zuletzt geändert und gespeichert wurde.
CFileFind::GetLength Ruft die Länge der gefundenen Datei in Bytes ab.
CFileFind::GetRoot Ruft das Stammverzeichnis der gefundenen Datei ab.
CFileFind::IsArchived Bestimmt, ob die gefundene Datei archiviert wird.
CFileFind::IsCompressed Bestimmt, ob die gefundene Datei komprimiert ist.
CFileFind::IsDirectory Bestimmt, ob die gefundene Datei ein Verzeichnis ist.
CFileFind::IsDots Bestimmt, ob der Name der gefundenen Datei den Namen "." oder ".." hat, was angibt, dass es sich tatsächlich um ein Verzeichnis handelt.
CFileFind::IsHidden Bestimmt, ob die gefundene Datei ausgeblendet ist.
CFileFind::IsNormal Bestimmt, ob die gefundene Datei normal ist (mit anderen Worten, hat keine anderen Attribute).
CFileFind::IsReadOnly Bestimmt, ob die gefundene Datei schreibgeschützt ist.
CFileFind::IsSystem Bestimmt, ob es sich bei der gefundenen Datei um eine Systemdatei handelt.
CFileFind::IsTemporary Bestimmt, ob die gefundene Datei temporär ist.
CFileFind::MatchesMask Gibt die gewünschten Dateiattribute der zu findenden Datei an.

Geschützte Methoden

Name Beschreibung
CFileFind::CloseContext Schließt die vom aktuellen Suchhandle angegebene Datei.

Geschützte Datenmember

Name Beschreibung
CFileFind::m_pTM Zeiger auf ein CAtlTransactionManager Objekt.

Hinweise

CFileFind enthält Memberfunktionen, die eine Suche beginnen, eine Datei suchen und den Titel, den Namen oder den Pfad der Datei zurückgeben. Bei Internetsuchen gibt die Memberfunktion GetFileURL die URL der Datei zurück.

CFileFind ist die Basisklasse für zwei andere MFC-Klassen zum Durchsuchen bestimmter Servertypen: CGopherFileFind arbeitet speziell mit Gopher-Servern und CFtpFileFind arbeitet speziell mit FTP-Servern. Zusammen bieten diese drei Klassen einen nahtlosen Mechanismus für den Client, um Dateien unabhängig vom Serverprotokoll, dem Dateityp oder Speicherort auf einem lokalen Computer oder einem Remoteserver zu finden.

Im folgenden Code werden alle Dateien im aktuellen Verzeichnis aufgelistet, wobei der Name jeder Datei gedruckt wird:

CFileFind finder;
BOOL bWorking = finder.FindFile(_T("*.*"));
while (bWorking)
{
   bWorking = finder.FindNextFile();
   TRACE(_T("%s\n"), (LPCTSTR)finder.GetFileName());
} 

Um das Beispiel einfach zu halten, verwendet dieser Code die C++-Standardbibliotheksklasse cout . Die cout Zeile könnte durch einen Aufruf CListBox::AddStringersetzt werden, z. B. in einem Programm mit einer grafischen Benutzeroberfläche.

Weitere Informationen zur Verwendung CFileFind und zu den anderen WinInet-Klassen finden Sie im Artikel "Internet Programming with WinInet".

Vererbungshierarchie

CObject

CFileFind

Anforderungen

Header: afx.h

CFileFind::CFileFind

Diese Memberfunktion wird aufgerufen, wenn ein CFileFind Objekt erstellt wird.

CFileFind();
CFileFind(CAtlTransactionManager* pTM);

Parameter

pTM
Zeiger auf CAtlTransactionManager-Objekt

Beispiel

Ein Beispiel hierfür finden Sie unter CFileFind::GetFileName.

CFileFind::Close

Rufen Sie diese Memberfunktion auf, um die Suche zu beenden, den Kontext zurückzusetzen und alle Ressourcen freizugeben.

void Close();

Hinweise

Nach dem Aufrufen Closemüssen Sie vor dem Aufrufen keine neue CFileFind Instanz erstellen, bevor Sie FindFile eine neue Suche starten.

Beispiel

Ein Beispiel hierfür finden Sie unter CFileFind::GetFileName.

CFileFind::CloseContext

Schließt die vom aktuellen Suchhandle angegebene Datei.

virtual void CloseContext();

Hinweise

Schließt die durch den aktuellen Wert des Suchhandle angegebene Datei. Überschreiben Sie diese Funktion, um das Standardverhalten zu ändern.

Sie müssen die FindFile Funktionen FindNextFile mindestens einmal aufrufen, um einen gültigen Suchhandle abzurufen. Die FindFile Und FindNextFile Funktionen verwenden das Suchhandle, um Dateien mit Namen zu suchen, die einem bestimmten Namen entsprechen.

CFileFind::FindFile

Rufen Sie diese Memberfunktion auf, um eine Dateisuche zu öffnen.

virtual BOOL FindFile(
    LPCTSTR pstrName = NULL,
    DWORD dwUnused = 0);

Parameter

pstrName
Ein Zeiger auf eine Zeichenfolge, die den Namen der zu suchenden Datei enthält. Wenn Sie dies übergeben NULL pstrName, FindFile führt die Suche nach einem Wildcard (*.*) durch.

dwUnused
Reserviert, um polymorph mit abgeleiteten Klassen zu erstellen FindFile . Muss den Wert 0 (null) haben.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null). Rufen Sie die Win32-Funktion GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.

Hinweise

Rufen Sie FindNextFile nach dem Aufrufen FindFile zum Starten der Dateisuche auf, um nachfolgende Dateien abzurufen. Sie müssen mindestens einmal aufrufen, bevor Sie eine der folgenden Attributmememmfunktionen aufrufen FindNextFile :

Beispiel

Ein Beispiel hierfür finden Sie unter CFileFind::IsDirectory.

CFileFind::FindNextFile

Rufen Sie diese Memberfunktion auf, um eine Dateisuche aus einem vorherigen Aufruf fortzusetzen FindFile.

virtual BOOL FindNextFile();

Rückgabewert

Nonzero, wenn mehr Dateien vorhanden sind; null, wenn die gefundene Datei die letzte im Verzeichnis ist oder wenn ein Fehler aufgetreten ist. Rufen Sie die Win32-Funktion GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten. Wenn die Gefundene Datei die letzte Datei im Verzeichnis ist oder wenn keine übereinstimmenden Dateien gefunden werden können, gibt die GetLastError Funktion zurück ERROR_NO_MORE_FILES.

Hinweise

Sie müssen mindestens einmal aufrufen, bevor Sie eine der folgenden Attributmememmfunktionen aufrufen FindNextFile :

FindNextFile umschließt die FindNextFile-Win32-Funktion.

Beispiel

Ein Beispiel hierfür finden Sie unter CFileFind::IsDirectory.

CFileFind::GetCreationTime

Rufen Sie diese Memberfunktion auf, um den Zeitpunkt der Erstellung der angegebenen Datei abzurufen.

virtual BOOL GetCreationTime(FILETIME* pTimeStamp) const;
virtual BOOL GetCreationTime(CTime& refTime) const;

Parameter

pTimeStamp
Ein Zeiger auf eine FILETIME Struktur, die den Zeitpunkt enthält, zu dem die Datei erstellt wurde.

refTime
Ein Verweis auf ein CTime-Objekt.

Rückgabewert

Nonzero bei erfolgreicher Ausführung; 0, wenn dies nicht erfolgreich ist. GetCreationTime gibt 0 nur zurück, wenn FindNextFile für dieses CFileFind Objekt nie aufgerufen wurde.

Hinweise

Sie müssen FindNextFile mindestens einmal anrufen, bevor Sie anrufen GetCreationTime.

Hinweis

Nicht alle Dateisysteme verwenden dieselbe Semantik, um den von dieser Funktion zurückgegebenen Zeitstempel zu implementieren. Diese Funktion gibt möglicherweise denselben Wert zurück, der von anderen Zeitstempelfunktionen zurückgegeben wird, wenn das zugrunde liegende Dateisystem oder server das Zeitattribute nicht unterstützt. Informationen zu Zeitformaten finden Sie in der WIN32_FIND_DATA Struktur. Bei einigen Betriebssystemen befindet sich die zurückgegebene Uhrzeit in der lokalen Zeitzone auf dem Computer, wenn sich die Datei befindet. Weitere Informationen finden Sie in der Win32-API FileTimeToLocalFileTime .

Beispiel

Ein Beispiel hierfür finden Sie unter CFileFind::GetLength.

CFileFind::GetFileName

Rufen Sie diese Memberfunktion auf, um den Namen der gefundenen Datei abzurufen.

virtual CString GetFileName() const;

Rückgabewert

Der Name der zuletzt gefundenen Datei.

Hinweise

Sie müssen mindestens einmal aufrufen FindNextFile , bevor Sie GetFileName aufrufen.

GetFileName ist eine von drei CFileFind Memberfunktionen, die eine Form des Dateinamens zurückgeben. Die folgende Liste beschreibt die drei und wie sie variieren:

  • GetFileName gibt den Dateinamen einschließlich der Erweiterung zurück. Beispielsweise wird durch aufrufen GetFileName , um eine Benutzernachricht über die Datei c:\myhtml\myfile.txt zu generieren, den Dateinamen myfile.txtzurückgegeben.

  • GetFilePath gibt den gesamten Pfad für die Datei zurück. Beispielsweise wird durch aufrufen GetFilePath , um eine Benutzernachricht über die Datei c:\myhtml\myfile.txt zu generieren, den Dateipfad c:\myhtml\myfile.txtzurückgegeben.

  • GetFileTitle gibt den Dateinamen zurück, mit Ausnahme der Dateierweiterung. Beispielsweise wird durch aufrufen GetFileTitle , um eine Benutzernachricht über die Datei c:\myhtml\myfile.txt zu generieren, der Dateititel myfilezurückgegeben.

Beispiel

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

Rufen Sie diese Memberfunktion auf, um den vollständigen Pfad der angegebenen Datei abzurufen.

virtual CString GetFilePath() const;

Rückgabewert

Der Pfad der angegebenen Datei.

Hinweise

Sie müssen FindNextFile mindestens einmal anrufen, bevor Sie anrufen GetFilePath.

GetFilePath ist eine von drei CFileFind Memberfunktionen, die eine Form des Dateinamens zurückgeben. Die folgende Liste beschreibt die drei und wie sie variieren:

  • GetFileName gibt den Dateinamen einschließlich der Erweiterung zurück. Beispielsweise wird durch aufrufen GetFileName , um eine Benutzernachricht über die Datei c:\myhtml\myfile.txt zu generieren, den Dateinamen myfile.txtzurückgegeben.

  • GetFilePath gibt den gesamten Pfad für die Datei zurück. Beispielsweise wird durch aufrufen GetFilePath , um eine Benutzernachricht über die Datei c:\myhtml\myfile.txt zu generieren, den Dateipfad c:\myhtml\myfile.txtzurückgegeben.

  • GetFileTitle gibt den Dateinamen zurück, mit Ausnahme der Dateierweiterung. Beispielsweise wird durch aufrufen GetFileTitle , um eine Benutzernachricht über die Datei c:\myhtml\myfile.txt zu generieren, der Dateititel myfilezurückgegeben.

Beispiel

Ein Beispiel hierfür finden Sie unter CFileFind::GetFileName.

CFileFind::GetFileTitle

Rufen Sie diese Memberfunktion auf, um den Titel der gefundenen Datei abzurufen.

virtual CString GetFileTitle() const;

Rückgabewert

Der Titel der Datei.

Hinweise

Sie müssen FindNextFile mindestens einmal anrufen, bevor Sie anrufen GetFileTitle.

GetFileTitle ist eine von drei CFileFind Memberfunktionen, die eine Form des Dateinamens zurückgeben. Die folgende Liste beschreibt die drei und wie sie variieren:

  • GetFileName gibt den Dateinamen einschließlich der Erweiterung zurück. Beispielsweise wird durch aufrufen GetFileName , um eine Benutzernachricht über die Datei c:\myhtml\myfile.txt zu generieren, den Dateinamen myfile.txtzurückgegeben.

  • GetFilePath gibt den gesamten Pfad für die Datei zurück. Beispielsweise wird durch aufrufen GetFilePath , um eine Benutzernachricht über die Datei c:\myhtml\myfile.txt zu generieren, der Dateipfad "c:\myhtml\myfile.txt" zurückgegeben.

  • GetFileTitle gibt den Dateinamen zurück, mit Ausnahme der Dateierweiterung. Beispielsweise wird durch aufrufen GetFileTitle , um eine Benutzernachricht über die Datei c:\myhtml\myfile.txt zu generieren, der Dateititel myfilezurückgegeben.

Beispiel

Ein Beispiel hierfür finden Sie unter CFileFind::GetFileName.

CFileFind::GetFileURL

Rufen Sie diese Memberfunktion auf, um die angegebene URL abzurufen.

virtual CString GetFileURL() const;

Rückgabewert

Die vollständige URL.

Hinweise

Sie müssen FindNextFile mindestens einmal anrufen, bevor Sie anrufen GetFileURL.

GetFileURL ähnelt der Memberfunktion GetFilePath, mit der Ausnahme, dass sie die URL im Formular file://pathzurückgibt. Rufen Sie GetFileURL beispielsweise auf, um die vollständige URL für myfile.txt die URL abzurufen, die die URL file://c:\myhtml\myfile.txtzurückgibt.

Beispiel

Ein Beispiel hierfür finden Sie unter CFileFind::GetFileName.

CFileFind::GetLastAccessTime

Rufen Sie diese Memberfunktion auf, um die Uhrzeit des letzten Zugriffs auf die angegebene Datei abzurufen.

virtual BOOL GetLastAccessTime(CTime& refTime) const;
virtual BOOL GetLastAccessTime(FILETIME* pTimeStamp) const;

Parameter

refTime
Ein Verweis auf ein CTime-Objekt.

pTimeStamp
Ein Zeiger auf eine FILETIME Struktur mit dem Zeitpunkt, zu dem die Datei zuletzt zugegriffen wurde.

Rückgabewert

Nonzero bei erfolgreicher Ausführung; 0, wenn dies nicht erfolgreich ist. GetLastAccessTime gibt 0 nur zurück, wenn FindNextFile für dieses CFileFind Objekt nie aufgerufen wurde.

Hinweise

Sie müssen FindNextFile mindestens einmal anrufen, bevor Sie anrufen GetLastAccessTime.

Hinweis

Nicht alle Dateisysteme verwenden dieselbe Semantik, um den von dieser Funktion zurückgegebenen Zeitstempel zu implementieren. Diese Funktion gibt möglicherweise denselben Wert zurück, der von anderen Zeitstempelfunktionen zurückgegeben wird, wenn das zugrunde liegende Dateisystem oder server das Zeitattribute nicht unterstützt. Informationen zu Zeitformaten finden Sie in der WIN32_FIND_DATA Struktur. Bei einigen Betriebssystemen befindet sich die zurückgegebene Uhrzeit in der lokalen Zeitzone auf dem Computer, wenn sich die Datei befindet. Weitere Informationen finden Sie in der Win32-API FileTimeToLocalFileTime .

Beispiel

Ein Beispiel hierfür finden Sie unter CFileFind::GetLength.

CFileFind::GetLastWriteTime

Rufen Sie diese Memberfunktion auf, um den Zeitpunkt der letzten Änderung der Datei abzurufen.

virtual BOOL GetLastWriteTime(FILETIME* pTimeStamp) const;
virtual BOOL GetLastWriteTime(CTime& refTime) const;

Parameter

pTimeStamp
Ein Zeiger auf eine FILETIME Struktur, die die Uhrzeit enthält, in die die Datei zuletzt geschrieben wurde.

refTime
Ein Verweis auf ein CTime-Objekt.

Rückgabewert

Nonzero bei erfolgreicher Ausführung; 0, wenn dies nicht erfolgreich ist. GetLastWriteTime gibt 0 nur zurück, wenn FindNextFile für dieses CFileFind Objekt nie aufgerufen wurde.

Hinweise

Sie müssen FindNextFile mindestens einmal anrufen, bevor Sie anrufen GetLastWriteTime.

Hinweis

Nicht alle Dateisysteme verwenden dieselbe Semantik, um den von dieser Funktion zurückgegebenen Zeitstempel zu implementieren. Diese Funktion gibt möglicherweise denselben Wert zurück, der von anderen Zeitstempelfunktionen zurückgegeben wird, wenn das zugrunde liegende Dateisystem oder server das Zeitattribute nicht unterstützt. Informationen zu Zeitformaten finden Sie in der WIN32_FIND_DATA Struktur. Bei einigen Betriebssystemen befindet sich die zurückgegebene Uhrzeit in der lokalen Zeitzone auf dem Computer, wenn sich die Datei befindet. Weitere Informationen finden Sie in der Win32-API FileTimeToLocalFileTime .

Beispiel

Ein Beispiel hierfür finden Sie unter CFileFind::GetLength.

CFileFind::GetLength

Rufen Sie diese Memberfunktion auf, um die Länge der gefundenen Datei in Byte abzurufen.

ULONGLONG GetLength() const;

Rückgabewert

Die Länge der gefundenen Datei in Byte.

Hinweise

Sie müssen FindNextFile mindestens einmal anrufen, bevor Sie anrufen GetLength.

GetLength verwendet die Win32-Struktur WIN32_FIND_DATA , um den Wert der Dateigröße in Bytes abzurufen und zurückzugeben.

Hinweis

Ab MFC 7.0 GetLength unterstützt 64-Bit-Ganzzahltypen. Bereits vorhandene Code, der mit dieser neueren Version der Bibliothek erstellt wurde, kann zu Abkürzungswarnungen führen.

Beispiel

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

Rufen Sie diese Memberfunktion auf, um den Stamm der gefundenen Datei abzurufen.

virtual CString GetRoot() const;

Rückgabewert

Der Stamm der aktiven Suche.

Hinweise

Sie müssen FindNextFile mindestens einmal anrufen, bevor Sie anrufen GetRoot.

Diese Memberfunktion gibt den Laufwerksbezeichner und pfadnamen zurück, der zum Starten einer Suche verwendet wird. Beispielsweise wird beim Aufrufen FindFile mit *.dat Ergebnissen GetRoot eine leere Zeichenfolge zurückgegeben. Übergeben eines Pfads( zc:\windows\system\*.dll. B. ) zu ErgebnissenGetRoot, die FindFile zurückgegeben werdenc:\windows\system\.

Beispiel

Ein Beispiel hierfür finden Sie unter CFileFind::GetFileName.

CFileFind::IsArchived

Rufen Sie diese Memberfunktion auf, um zu ermitteln, ob die gefundene Datei archiviert ist.

BOOL IsArchived() const;

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Anwendungen markieren eine Archivdatei, die gesichert oder entfernt werden soll, mit FILE_ATTRIBUTE_ARCHIVEeinem in der WIN32_FIND_DATA Struktur identifizierten Dateiattribute.

Sie müssen FindNextFile mindestens einmal anrufen, bevor Sie anrufen IsArchived.

Eine vollständige Liste der Dateiattribute finden Sie in der Memberfunktion MatchesMask .

Beispiel

Ein Beispiel hierfür finden Sie unter CFileFind::GetLength.

CFileFind::IsCompressed

Rufen Sie diese Memberfunktion auf, um festzustellen, ob die gefundene Datei komprimiert ist.

BOOL IsCompressed() const;

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Eine komprimierte Datei ist mit FILE_ATTRIBUTE_COMPRESSEDeinem in der WIN32_FIND_DATA Struktur identifizierten Datei-Attribut gekennzeichnet. Bei einer Datei gibt dieses Attribut an, dass alle Daten in der Datei komprimiert werden. Für ein Verzeichnis gibt dieses Attribut an, dass die Komprimierung die Standardeinstellung für neu erstellte Dateien und Unterverzeichnisse ist.

Sie müssen FindNextFile mindestens einmal anrufen, bevor Sie anrufen IsCompressed.

Eine vollständige Liste der Dateiattribute finden Sie in der Memberfunktion MatchesMask .

Beispiel

Ein Beispiel hierfür finden Sie unter CFileFind::GetLength.

CFileFind::IsDirectory

Rufen Sie diese Memberfunktion auf, um zu ermitteln, ob es sich bei der gefundenen Datei um ein Verzeichnis handelt.

BOOL IsDirectory() const;

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Eine Datei, die ein Verzeichnis ist, wird mit FILE_ATTRIBUTE_DIRECTORY einem in der WIN32_FIND_DATA Struktur identifizierten Dateiattribute gekennzeichnet.

Sie müssen FindNextFile mindestens einmal anrufen, bevor Sie anrufen IsDirectory.

Eine vollständige Liste der Dateiattribute finden Sie in der Memberfunktion MatchesMask .

Beispiel

Dieses kleine Programm rekursiert jedes Verzeichnis auf dem Laufwerk C:\ und druckt den Namen des Verzeichnisses.

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

Rufen Sie diese Memberfunktion auf, um die aktuellen Verzeichnis- und übergeordneten Verzeichnismarkierungen beim Durchlaufen von Dateien zu testen.

virtual BOOL IsDots() const;

Rückgabewert

Nonzero, wenn die gefundene Datei den Namen "." oder ".." hat, was angibt, dass die gefundene Datei tatsächlich ein Verzeichnis ist. andernfalls 0.

Hinweise

Sie müssen FindNextFile mindestens einmal anrufen, bevor Sie anrufen IsDots.

Beispiel

Ein Beispiel hierfür finden Sie unter CFileFind::IsDirectory.

CFileFind::IsHidden

Rufen Sie diese Memberfunktion auf, um festzustellen, ob die gefundene Datei ausgeblendet ist.

BOOL IsHidden() const;

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Ausgeblendete Dateien, die mit FILE_ATTRIBUTE_HIDDENgekennzeichnet sind, ein in der WIN32_FIND_DATA Struktur identifiziertes Dateiattribute. Eine ausgeblendete Datei ist nicht in einer normalen Verzeichnisauflistung enthalten.

Sie müssen FindNextFile mindestens einmal anrufen, bevor Sie anrufen IsHidden.

Eine vollständige Liste der Dateiattribute finden Sie in der Memberfunktion MatchesMask .

Beispiel

Ein Beispiel hierfür finden Sie unter CFileFind::GetLength.

CFileFind::IsNormal

Rufen Sie diese Memberfunktion auf, um zu ermitteln, ob die gefundene Datei eine normale Datei ist.

BOOL IsNormal() const;

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Dateien, die mit FILE_ATTRIBUTE_NORMAL, einem in der WIN32_FIND_DATA Struktur identifizierten Dateisattribut gekennzeichnet sind. Eine normale Datei hat keine anderen Attribute festgelegt. Alle anderen Dateiattribute überschreiben dieses Attribut.

Sie müssen FindNextFile mindestens einmal anrufen, bevor Sie anrufen IsNormal.

Eine vollständige Liste der Dateiattribute finden Sie in der Memberfunktion MatchesMask .

Beispiel

Ein Beispiel hierfür finden Sie unter CFileFind::GetLength.

CFileFind::IsReadOnly

Rufen Sie diese Memberfunktion auf, um festzustellen, ob die gefundene Datei schreibgeschützt ist.

BOOL IsReadOnly() const;

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Eine schreibgeschützte Datei ist mit FILE_ATTRIBUTE_READONLYeinem in der WIN32_FIND_DATA Struktur identifizierten Dateiattribute gekennzeichnet. Anwendungen können eine solche Datei lesen, aber sie können nicht in sie schreiben oder löschen.

Sie müssen FindNextFile mindestens einmal anrufen, bevor Sie anrufen IsReadOnly.

Eine vollständige Liste der Dateiattribute finden Sie in der Memberfunktion MatchesMask .

Beispiel

Ein Beispiel hierfür finden Sie unter CFileFind::GetLength.

CFileFind::IsSystem

Rufen Sie diese Memberfunktion auf, um zu ermitteln, ob es sich bei der gefundenen Datei um eine Systemdatei handelt.

BOOL IsSystem() const;

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Eine Systemdatei ist mit FILE_ATTRIBUTE_SYSTEMeinem in der WIN32_FIND_DATA Struktur identifizierten Dateiattribute gekennzeichnet. Eine Systemdatei ist Teil des Betriebssystems oder wird ausschließlich vom Betriebssystem verwendet.

Sie müssen FindNextFile mindestens einmal anrufen, bevor Sie anrufen IsSystem.

Eine vollständige Liste der Dateiattribute finden Sie in der Memberfunktion MatchesMask .

Beispiel

Ein Beispiel hierfür finden Sie unter CFileFind::GetLength.

CFileFind::IsTemporary

Rufen Sie diese Memberfunktion auf, um festzustellen, ob es sich bei der gefundenen Datei um eine temporäre Datei handelt.

BOOL IsTemporary() const;

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Eine temporäre Datei ist mit FILE_ATTRIBUTE_TEMPORARYeinem in der WIN32_FIND_DATA Struktur identifizierten Dateiattribute gekennzeichnet. Eine temporäre Datei wird für temporären Speicher verwendet. Anwendungen sollten nur bei Bedarf in die Datei schreiben. Die meisten Daten der Datei verbleiben im Arbeitsspeicher, ohne auf die Medien geleert zu werden, da die Datei bald gelöscht wird.

Sie müssen FindNextFile mindestens einmal anrufen, bevor Sie anrufen IsTemporary.

Eine vollständige Liste der Dateiattribute finden Sie in der Memberfunktion MatchesMask .

Beispiel

Ein Beispiel hierfür finden Sie unter CFileFind::GetLength.

CFileFind::m_pTM

Zeiger auf ein CAtlTransactionManager Objekt.

CAtlTransactionManager* m_pTM;

Hinweise

CFileFind::MatchesMask

Rufen Sie diese Memberfunktion auf, um die Dateiattribute in der gefundenen Datei zu testen.

virtual BOOL MatchesMask(DWORD dwMask) const;

Parameter

dwMask
Gibt ein oder mehrere Dateiattribute an, die in der WIN32_FIND_DATA Struktur angegeben sind, für die gefundene Datei. Um nach mehreren Attributen zu suchen, verwenden Sie den bitweisen OR (|)-Operator. Eine beliebige Kombination der folgenden Attribute ist akzeptabel:

  • FILE_ATTRIBUTE_ARCHIVE Die Datei ist eine Archivdatei. Anwendungen verwenden dieses Attribut, um Dateien für die Sicherung oder Entfernung zu markieren.

  • FILE_ATTRIBUTE_COMPRESSED Die Datei oder das Verzeichnis wird komprimiert. Bei einer Datei bedeutet dies, dass alle Daten in der Datei komprimiert werden. Für ein Verzeichnis bedeutet dies, dass die Komprimierung die Standardeinstellung für neu erstellte Dateien und Unterverzeichnisse ist.

  • FILE_ATTRIBUTE_DIRECTORY Die Datei ist ein Verzeichnis.

  • FILE_ATTRIBUTE_NORMAL Die Datei hat keine anderen Attribute festgelegt. Dieses Attribut ist nur gültig, wenn es allein verwendet wird. Alle anderen Dateiattribute überschreiben dieses Attribut.

  • FILE_ATTRIBUTE_HIDDEN Die Datei ist ausgeblendet. Sie darf nicht in eine normale Verzeichnisauflistung aufgenommen werden.

  • FILE_ATTRIBUTE_READONLY Die Datei ist schreibgeschützt. Anwendungen können die Datei lesen, aber nicht in sie schreiben oder löschen.

  • FILE_ATTRIBUTE_SYSTEM Die Datei ist Teil oder wird ausschließlich vom Betriebssystem verwendet.

  • FILE_ATTRIBUTE_TEMPORARY Die Datei wird für temporären Speicher verwendet. Anwendungen sollten nur bei Bedarf in die Datei schreiben. Die meisten Daten der Datei verbleiben im Arbeitsspeicher, ohne auf die Medien geleert zu werden, da die Datei bald gelöscht wird.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null). Rufen Sie die Win32-Funktion GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.

Hinweise

Sie müssen FindNextFile mindestens einmal anrufen, bevor Sie anrufen MatchesMask.

Beispiel

// 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());
   }
}

Siehe auch

CObject-Klasse
Hierarchiediagramm
CFtpFileFind Klasse
CGopherFileFind Klasse
CInternetFile Klasse
CGopherFile Klasse
CHttpFile Klasse