Condividi tramite


_findfirst, _wfindfirst

Fornisce informazioni sulla prima istanza di un nome file che corrisponde al file specificato nell'argomento di filespec.

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 
);

Parametri

  • filespec
    Specifica di file di destinazione (potrebbe includere caratteri jolly).

  • fileinfo
    Buffer di informazioni sui file.

Valore restituito

Se l'operazione riesce, _findfirst restituisce un unico handle di ricerca che identifica il file o il gruppo di file corrispondenti alla specifica di filespec, che può essere utilizzata in una chiamata successiva a _findnext o a _findclose. In caso contrario, _findfirst restituisce - 1 e imposta errno su uno dei valori seguenti.

  • EINVAL
    Parametro non valido: filespec o fileinfo era NULL. Oppure, il sistema operativo ha restituito un errore imprevisto.

  • ENOENT
    Specifica di file che non è stato possibile confrontare.

  • ENOMEM
    Memoria insufficiente.

  • EINVAL
    La specifica di nome di file non valido o il nome del file fornito è maggiore di MAX_PATH.

Per ulteriori informazioni su questi e altri codici restituiti, vedere _doserrno, errno, _sys_errlist, e _sys_nerr.

Se viene passato un parametro non valido, queste funzioni invocano il gestore di parametro non valido, come descritto in Convalida dei parametri.

Note

È necessario chiamare _findclose dopo che si è finito di utilizzare la funzione _findfirst o _findnext (o una loro variante qualsiasi). Ciò libera le risorse utilizzate da queste funzioni nell'applicazione.

Le variazioni di queste funzioni con il prefisso w sono versioni a caratteri wide; altrimenti, sono identiche alle funzioni a byte singolo corrispondenti.

Le variazioni di queste funzioni supportano i tipi di data e ora e dimensioni di file a 32 o 64 bit. Il primo suffisso numerico (32 o 64) indica la dimensione del tipo time utilizzato; il secondo suffisso è i32 o i64, che indica se le dimensioni del file sono rappresentate con un Integer a 32 o a 64bit. Per informazioni su quali versioni supportano i tipi di data e ora e dimensioni di file a 32 e 64 bit, vedere la tabella seguente. Il suffisso di i64 o di i32 viene omesso se è uguale alla dimensione del tempo, pertanto _findfirst64 inoltre supporta le lunghezze del file a 64 bit e _findfirst32 supporta solo le lunghezze del file a 32 bit.

Queste forme usano funzioni diverse della struttura di _finddata_t per il parametro di fileinfo. Per ulteriori informazioni sulla struttura, consultare Funzioni _find, _wfind.

Le variazioni che utilizzano un tipo di tempo a 64 bit consentono alle date la creazione di un file che può essere espresso fino alle 23:59: 59, 31 dicembre, 3000, UTC. Quelli che utilizzano i tipi di tempo a 32 bit rappresentano le date solo fino alle 19:14:07, 18 gennaio 2038, UTC. Per tutte queste funzioni, la mezzanotte, del 1° gennaio 1970, è il limite inferiore dell'intervallo di date.

A meno che non si disponga di un motivo specifico per utilizzare le versioni che specificano le dimensioni di tempo in modo esplicito, utilizzare _findfirst o _wfindfirst o, se è necessario supportare file di dimensioni maggiori di 3 GB, utilizzare _findfirsti64 o _wfindfirsti64. Tutte queste funzioni utilizzano il tipo di data e ora a 64 bit. Nelle versioni precedenti, queste funzioni hanno utilizzato un tipo di tempo a 32 bit. Se si tratta di una modifica sostanziale per un'applicazione, è possibile definire _USE_32BIT_TIME_T per ottenere il comportamento precedente. Se _USE_32BIT_TIME_T è definito, _findfirst, _finfirsti64 e le versioni corrispondenti Unicode utilizzano una rappresentazione di data e ora a 32 bit.

Le variazioni del tipo di data ed ora ed il tipo di lunghezza del file di _findfirst

Funzioni

_USE_32BIT_TIME_T è definito?

Tipo time

Tipo di lunghezza del file

_findfirst, _wfindfirst

Non definito

64 bit

32 bit

_findfirst, _wfindfirst

definito

32 bit

32 bit

_findfirst32, _wfindfirst32

Non dipende dalla definizione macro

32 bit

32 bit

_findfirst64, _wfindfirst64

Non dipende dalla definizione macro

64 bit

64 bit

_findfirsti64, _wfindfirsti64

Non definito

64 bit

64 bit

_findfirsti64, _wfindfirsti64

definito

32 bit

64 bit

_findfirst32i64, _wfindfirst32i64

Non dipende dalla definizione macro

32 bit

64 bit

_findfirst64i32, _wfindfirst64i32

Non dipende dalla definizione macro

64 bit

32 bit

Mapping di routine di testo generico

Routine Tchar.h

_UNICODE e _MBCS non definiti

_MBCS definito

_UNICODE definito

_tfindfirst

_findfirst

_findfirst

_wfindfirst

_tfindfirst32

_findfirst32

_findfirst32

_wfindfirst32

_tfindfirst64

_findfirst64

_findfirst64

_wfindfirst64

_tfindfirsti64

_findfirsti64

_findfirsti64

_wfindfirsti64

_tfindfirst32i64

_findfirst32i64

_findfirst32i64

_wfindfirst32i64

_tfindfirst64i32

_findfirst64i32

_findfirst64i32

_wfindfirst64i32

Requisiti

Funzione

Intestazione obbligatoria

_findfirst

<io.h>

_findfirst32

<io.h>

_findfirst64

<io.h>

_findfirsti64

<io.h>

_findfirst32i64

<io.h>

_findfirst64i32

<io.h>

_wfindfirst

<io.h> o <wchar.h>

_wfindfirst32

<io.h> o <wchar.h>

_wfindfirst64

<io.h> o <wchar.h>

_wfindfirsti64

<io.h> o <wchar.h>

_wfindfirst32i64

<io.h> o <wchar.h>

_wfindfirst64i32

<io.h> o <wchar.h>

Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'introduzione.

Equivalente .NET Framework

System::IO::DirectoryInfo::GetFiles

Vedere anche

Riferimenti

Chiamate di sistema

Funzioni _find, _wfind