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::AddString
ersetzt 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
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 Close
mü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 GetLastError
auf, 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 GetLastError
auf, 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 aufrufenGetFileName
, um eine Benutzernachricht über die Dateic:\myhtml\myfile.txt
zu generieren, den Dateinamenmyfile.txt
zurückgegeben.GetFilePath
gibt den gesamten Pfad für die Datei zurück. Beispielsweise wird durch aufrufenGetFilePath
, um eine Benutzernachricht über die Dateic:\myhtml\myfile.txt
zu generieren, den Dateipfadc:\myhtml\myfile.txt
zurückgegeben.GetFileTitle
gibt den Dateinamen zurück, mit Ausnahme der Dateierweiterung. Beispielsweise wird durch aufrufenGetFileTitle
, um eine Benutzernachricht über die Dateic:\myhtml\myfile.txt
zu generieren, der Dateititelmyfile
zurü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 aufrufenGetFileName
, um eine Benutzernachricht über die Dateic:\myhtml\myfile.txt
zu generieren, den Dateinamenmyfile.txt
zurückgegeben.GetFilePath
gibt den gesamten Pfad für die Datei zurück. Beispielsweise wird durch aufrufenGetFilePath
, um eine Benutzernachricht über die Dateic:\myhtml\myfile.txt
zu generieren, den Dateipfadc:\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 Dateic:\myhtml\myfile.txt
zu generieren, der Dateititelmyfile
zurü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 aufrufenGetFileName
, um eine Benutzernachricht über die Dateic:\myhtml\myfile.txt
zu generieren, den Dateinamenmyfile.txt
zurückgegeben.GetFilePath
gibt den gesamten Pfad für die Datei zurück. Beispielsweise wird durch aufrufenGetFilePath
, um eine Benutzernachricht über die Dateic:\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 aufrufenGetFileTitle
, um eine Benutzernachricht über die Dateic:\myhtml\myfile.txt
zu generieren, der Dateititelmyfile
zurü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://path
zurü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.txt
zurü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_ARCHIVE
einem 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_COMPRESSED
einem 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_HIDDEN
gekennzeichnet 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_READONLY
einem 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_SYSTEM
einem 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_TEMPORARY
einem 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 GetLastError
auf, 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