Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
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:
GetFileNamegibt den Dateinamen einschließlich der Erweiterung zurück. Beispielsweise wird durch aufrufenGetFileName, um eine Benutzernachricht über die Dateic:\myhtml\myfile.txtzu generieren, den Dateinamenmyfile.txtzurückgegeben.GetFilePathgibt den gesamten Pfad für die Datei zurück. Beispielsweise wird durch aufrufenGetFilePath, um eine Benutzernachricht über die Dateic:\myhtml\myfile.txtzu generieren, den Dateipfadc:\myhtml\myfile.txtzurückgegeben.GetFileTitlegibt den Dateinamen zurück, mit Ausnahme der Dateierweiterung. Beispielsweise wird durch aufrufenGetFileTitle, um eine Benutzernachricht über die Dateic:\myhtml\myfile.txtzu generieren, der Dateititelmyfilezurü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:
GetFileNamegibt den Dateinamen einschließlich der Erweiterung zurück. Beispielsweise wird durch aufrufenGetFileName, um eine Benutzernachricht über die Dateic:\myhtml\myfile.txtzu generieren, den Dateinamenmyfile.txtzurückgegeben.GetFilePathgibt den gesamten Pfad für die Datei zurück. Beispielsweise wird durch aufrufenGetFilePath, um eine Benutzernachricht über die Dateic:\myhtml\myfile.txtzu generieren, den Dateipfadc:\myhtml\myfile.txtzurückgegeben.GetFileTitle gibt den Dateinamen zurück, mit Ausnahme der Dateierweiterung. Beispielsweise wird durch aufrufen
GetFileTitle, um eine Benutzernachricht über die Dateic:\myhtml\myfile.txtzu generieren, der Dateititelmyfilezurü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:
GetFileNamegibt den Dateinamen einschließlich der Erweiterung zurück. Beispielsweise wird durch aufrufenGetFileName, um eine Benutzernachricht über die Dateic:\myhtml\myfile.txtzu generieren, den Dateinamenmyfile.txtzurückgegeben.GetFilePathgibt den gesamten Pfad für die Datei zurück. Beispielsweise wird durch aufrufenGetFilePath, um eine Benutzernachricht über die Dateic:\myhtml\myfile.txtzu generieren, der Dateipfad "c:\myhtml\myfile.txt" zurückgegeben.GetFileTitlegibt den Dateinamen zurück, mit Ausnahme der Dateierweiterung. Beispielsweise wird durch aufrufenGetFileTitle, um eine Benutzernachricht über die Dateic:\myhtml\myfile.txtzu generieren, der Dateititelmyfilezurü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_ARCHIVEDie Datei ist eine Archivdatei. Anwendungen verwenden dieses Attribut, um Dateien für die Sicherung oder Entfernung zu markieren.FILE_ATTRIBUTE_COMPRESSEDDie 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_DIRECTORYDie Datei ist ein Verzeichnis.FILE_ATTRIBUTE_NORMALDie 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_HIDDENDie Datei ist ausgeblendet. Sie darf nicht in eine normale Verzeichnisauflistung aufgenommen werden.FILE_ATTRIBUTE_READONLYDie Datei ist schreibgeschützt. Anwendungen können die Datei lesen, aber nicht in sie schreiben oder löschen.FILE_ATTRIBUTE_SYSTEMDie Datei ist Teil oder wird ausschließlich vom Betriebssystem verwendet.FILE_ATTRIBUTE_TEMPORARYDie 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