_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 _findclose
werden 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_errlist
und _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.