Freigeben über


_findfirst, _findfirst32, , _findfirst32i64, _findfirst64, _findfirsti64_findfirst64i32, _wfindfirst, _wfindfirst32, , _wfindfirst32i64, _wfindfirst64, , _wfindfirst64i32_wfindfirsti64

Stellen Informationen über das erste Vorkommen eines Dateinamens bereit, der mit der im Argument filespec angegebenen Datei übereinstimmt.

Syntax

intptr_t _findfirst(
   const char *filespec,
   struct _finddata_t *fileinfo
);
intptr_t _findfirst32(
   const char *filespec,
   struct _finddata32_t *fileinfo
);
intptr_t _findfirst64(
   const char *filespec,
   struct _finddata64_t *fileinfo
);
intptr_t _findfirsti64(
   const char *filespec,
   struct _finddatai64_t *fileinfo
);
intptr_t _findfirst32i64(
   const char *filespec,
   struct _finddata32i64_t *fileinfo
);
intptr_t _findfirst64i32(
   const char *filespec,
   struct _finddata64i32_t *fileinfo
);
intptr_t _wfindfirst(
   const wchar_t *filespec,
   struct _wfinddata_t *fileinfo
);
intptr_t _wfindfirst32(
   const wchar_t *filespec,
   struct _wfinddata32_t *fileinfo
);
intptr_t _wfindfirst64(
   const wchar_t *filespec,
   struct _wfinddata64_t *fileinfo
);
intptr_t _wfindfirsti64(
   const wchar_t *filespec,
   struct _wfinddatai64_t *fileinfo
);
intptr_t _wfindfirst32i64(
   const wchar_t *filespec,
   struct _wfinddata32i64_t *fileinfo
);
intptr_t _wfindfirst64i32(
   const wchar_t *filespec,
   struct _wfinddata64i32_t *fileinfo
);

Parameter

filespec
Ziel-Dateispezifikation (kann Platzhalterzeichen enthalten)

fileinfo
Puffer für Dateiinformationen. Weitere Informationen zu den Strukturen finden Sie in den fileinfo Hinweisen in den Suchfunktionen "Dateiname" und finden Sie unter "Datentypzuordnungen". Die Strukturen werden in derselben Headerdatei wie die Funktion definiert, die sie als Parameter verwendet.

Rückgabewert

Gibt bei erfolgreicher Ausführung ein eindeutiges Suchhandle zurück, _findfirst mit dem die Datei oder Gruppe von Dateien identifiziert wird, die der filespec Spezifikation entsprechen, die in einem nachfolgenden Aufruf von _findnext oder an verwendet _findclosewerden kann. _findfirst Andernfalls wird -1 zurückgegeben und auf einen der folgenden Werte festgelegterrno.

errno-Wert Bedingung
EINVAL Ungültiger Parameter: filespec oder fileinfo entsprach NULL, oder das Betriebssystem hat einen unerwarteten Fehler zurückgegeben.
ENOENT Dateispezifikation, die nicht abgeglichen werden konnte.
ENOMEM Der Arbeitsspeicher reicht nicht aus.
EINVAL Ein ungültiger Dateiname, oder der angegebene Dateiname war größer als MAX_PATH.

Weitere Informationen zu diesen und anderen Rückgabecodes finden Sie unter , , _doserrno, _sys_errlistund _sys_nerr.errno

Wenn ein ungültiger Parameter übergeben wird, rufen diese Funktionen den ungültigen Parameterhandler auf, wie in der Parameterüberprüfung beschrieben.

Hinweise

Sie müssen aufrufen _findclose , nachdem Sie entweder mit der _findfirst Funktion ( _findnext oder beliebigen Varianten) fertig sind, sofern der Aufruf _findfirst erfolgreich war. _findclose gibt Ressourcen frei, die von diesen Funktionen in Ihrer Anwendung verwendet werden. Das Aufrufen _findclose eines ungültigen Handles wird zurückgegeben -1 und festgelegt errno auf EINVAL.

Die Variationen dieser Funktionen, die das w Präfix aufweisen, sind Breitzeichenversionen. Andernfalls sind sie identisch mit den entsprechenden Einzelbytefunktionen.

Varianten dieser Funktionen unterstützen 32-Bit- oder 64-Bit-Zeittypen und 32-Bit- oder 64-Bit-Dateigrößen. Das erste numerische Suffix (32 oder 64) gibt die Größe des Zeittyps an. Das zweite Suffix ist entweder i32 oder i64 und gibt an, ob die Dateigröße als ganze Zahl mit 32 Bit oder 64 Bit dargestellt ist. Informationen darüber, welche Versionen 32-Bit- und 64-Bit-Zeittypen und -Dateigrößen unterstützen, finden Sie in der folgenden Tabelle. Das Suffix oder i64 Suffix i32 wird weggelassen, wenn es mit der Größe des Zeittyps übereinstimmt, sodass _findfirst64 auch 64-Bit-Dateilängen unterstützt und _findfirst32 nur 32-Bit-Dateilängen unterstützt werden.

Diese Funktionen verwenden verschiedene Formen der _finddata_t-Struktur für den Parameter fileinfo. Weitere Informationen zur Struktur finden Sie unter "Dateiname"-Suchfunktionen.

In Varianten, die einen 64-Bit-Zeittyp verwenden, kann das Erstellungsdatum der Datei bis 23:59:59 am 31. Dezember 3000 (UTC) ausgedrückt werden. Die 32-Bit-Zeittypen stellen Datumsangaben nur bis 23:59:59 Januar 18, 2038, UTC dar. Der 1. Januar 1970 (Mitternacht) ist der älteste mögliche Datumsbereich für all diese Funktionen.

Verwenden Sie _findfirst oder _wfindfirst, oder _findfirsti64 oder _wfindfirsti64, wenn Sie Dateigrößen von mehr als 3 GB unterstützen müssen, es sei denn, Sie haben einen bestimmten Grund für die Verwendung der Versionen, die die Zeitgröße explizit angeben. All diese Funktionen verwenden den 64-Bit-Zeittyp. In früheren Versionen verwendeten diese Funktionen einen 32-Bit-Zeittyp. Wenn diese Änderung eine bahnbrechende Änderung für eine Anwendung ist, können Sie definieren _USE_32BIT_TIME_T , dass sie auf das alte Verhalten zurückgesetzt wird. Wenn _USE_32BIT_TIME_T definiert ist, verwenden Sie _findfirst und _findfirsti64 und die entsprechenden Unicode-Versionen verwenden einen 32-Bit-Zeittyp.

Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.

_findfirst-Varianten des Zeittyps und Dateigrößentyps

Funktionen Ist _USE_32BIT_TIME_T definiert? Uhrzeittyp Dateilängentyp
_findfirst, _wfindfirst Nicht definiert 64-Bit 32-Bit
_findfirst, _wfindfirst Definiert 32 Bit 32 Bit
_findfirst32, _wfindfirst32 Nicht von der Makrodefinition betroffen 32 Bit 32 Bit
_findfirst64, _wfindfirst64 Nicht von der Makrodefinition betroffen 64 Bit 64 Bit
_findfirsti64, _wfindfirsti64 Nicht definiert 64 Bit 64 Bit
_findfirsti64, _wfindfirsti64 Definiert 32-Bit 64-Bit
_findfirst32i64, _wfindfirst32i64 Nicht von der Makrodefinition betroffen 32-Bit 64-Bit
_findfirst64i32, _wfindfirst64i32 Nicht von der Makrodefinition betroffen 64-Bit 32-Bit

Mapping generischer Textroutinen

Tchar.h-Routine _UNICODE und _MBCS nicht definiert _MBCS definiert _UNICODE definiert
_tfindfirst _findfirst _findfirst _wfindfirst
_tfindfirst32 _findfirst32 _findfirst32 _wfindfirst32
_tfindfirst64 _findfirst64 _findfirst64 _wfindfirst64
_tfindfirsti64 _findfirsti64 _findfirsti64 _wfindfirsti64
_tfindfirst32i64 _findfirst32i64 _findfirst32i64 _wfindfirst32i64
_tfindfirst64i32 _findfirst64i32 _findfirst64i32 _wfindfirst64i32

Anforderungen

Funktion Erforderlicher Header
_findfirst <io.h>
_findfirst32 <io.h>
_findfirst64 <io.h>
_findfirsti64 <io.h>
_findfirst32i64 <io.h>
_findfirst64i32 <io.h>
_wfindfirst <io.h> oder <wchar.h>
_wfindfirst32 <io.h> oder <wchar.h>
_wfindfirst64 <io.h> oder <wchar.h>
_wfindfirsti64 <io.h> oder <wchar.h>
_wfindfirst32i64 <io.h> oder <wchar.h>
_wfindfirst64i32 <io.h> oder <wchar.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Siehe auch

Systemaufrufe
Suchfunktionen für Dateinamen