Sdílet prostřednictvím


_find funkce _wfind

Tyto funkce hledání a vyhledává názvy zadaný soubor zavřete:

Poznámky

_findfirst Funkce poskytuje informace o první instanci název odpovídající soubor zadaný v souboru filespec argument.Můžete použít v filespec kombinace zástupných znaků, podporovaný hostitelský operační systém.

Funkce vrátí informace o souboru v _finddata_t struktury, která je definována v IO.h.Různé funkce řady použít na více variant _finddata_t struktury.Základní _finddata_t struktura obsahuje následující prvky:

  • unsigned attrib
    Atribut souboru.

  • time_t time_create
    Čas vytvoření souboru (–1L pro systémy souborů FAT).Tento čas je uložen ve formátu UTC.Chcete-li převést na místní čas, použijte localtime_s.

  • time_t time_access
    Čas posledního přístupu k souboru (–1L pro systémy souborů FAT).Tento čas je uložen ve formátu UTC.Chcete-li převést na místní čas, použijte localtime_s.

  • time_t time_write
    Čas posledního zápisu do souboru.Tento čas je uložen ve formátu UTC.Chcete-li převést na místní čas, použijte localtime_s.

  • _fsize_t size
    Délka souboru v bajtech.

  • char name[ _MAX_PATH]
    Název zakončený přiřazeného souboru nebo adresáři bez cesty.

V systémech souborů, které nepodporují vytváření a času posledního přístupu souboru, jako je například systém FAT time_create a time_access pole jsou vždy –1L.

_MAX_PATH v Stdlib.h je definován jako 260 bajtů.

Nelze určit cíl atributy (například _A_RDONLY) operace hledání omezit.Tyto atributy jsou vráceny v attrib pole _finddata_t struktury a může mít následující hodnoty (definované v IO.h).Uživatelé neměli spoléhat na tyto hodnoty pouze pro právě attrib pole.

  • _A_ARCH
    Archiv.Nastavit pokaždé, když je soubor změněn a schválena BACKUP příkaz.Hodnota: 0x20.

  • _A_HIDDEN
    Skrytý soubor.Obecně Sín s příkazu DIR, pokud nepoužijete /AH možnost.Vrátí informace o běžné soubory a soubory, které mají tento atribut.Hodnota: 0x02.

  • _A_NORMAL
    Normální.Soubor nemá žádné jiné atributy nastavit a který lze číst nebo zapisovat bez omezení.Hodnota: 0x00.

  • _A_RDONLY
    Jen pro čteníSoubor nelze otevřít pro zápis a nelze vytvořit soubor, který má stejný název.Hodnota: 0x01.

  • _A_SUBDIR
    Podadresář.Hodnota: 0x10.

  • _A_SYSTEM
    Systémový soubor.Není obvykle Sín s DIR příkaz, pokud /A nebo /A:S je použita možnost.Hodnota: 0x04.

_findnextNajde další název, pokud existuje, který odpovídá filespec argument zadaný v předchozí volání k _findfirst.fileinfo Argument směřovat struktury iniciovány předchozí volání k _findfirst.Pokud je nalezena shoda, fileinfo strukturu obsahu jsou změněny výše popsaným způsobem.Jinak je ponechán beze změny._findclosepopisovač hledání se zavře a uvolní všechny přidružené prostředky pro oba _findfirst a _findnext.Popisovač vrácený buď _findfirst nebo _findnext musí být předán nejprve _findclose, před modifikace operace, například odstranění, lze provést na adresáře, které jsou formuláře předávány na cesty.

Můžete vnořit _find funkcí.Například pokud volání _findfirst nebo _findnext vyhledá soubor, který je podadresářem nové hledání lze zahájit jiným voláním na _findfirst nebo _findnext.

_wfindfirsta _wfindnext jsou verze celého znaku _findfirst a _findnext.Struktura argumentu znak wide verzí _wfinddata_t datový typ, který je definován v IO.h a Wchar.h.Pole tohoto typu dat jsou stejné jako _finddata_t typ dat, s výjimkou, že v _wfinddata_t je název pole typu wchar_t místo typu char.Jinak _wfindfirst a _wfindnext chovají identicky na _findfirst a _findnext.

_findfirsta _findnext typ času 64 bit.Pokud je nutné použít typ staré 32bitové času, můžete definovat _USE_32BIT_TIME_T.Verze těchto funkcí, které mají 32 přípon názvů použít typ 32bitové času a s 64 příponu použít typ času 64 bit.

Funkce _findfirst32i64, _findnext32i64, _wfindfirst32i64, a _wfindnext32i64 také chovat stejně typu čas 32bitových verzí tyto funkce s výjimkou jejich použití a vrátit délky souboru 64 bit.Funkce _findfirst64i32, _findnext64i32, _wfindfirst64i32, a _wfindnext64i32použít typ 64 bit času ale použít délky souboru 32-bit.Tyto funkce používají vhodné varianty _finddata_t typu, ve kterém jste pole pro čas a velikost souboru různých typů.

_finddata_tskutečně makro, jehož výsledkem je _finddata64i32_t (nebo _finddata32_t -li _USE_32BIT_TIME_T je definován).Následující tabulka shrnuje variace na _finddata_t:

Struktura

Typ času

Zadejte velikost souboru

_finddata_t, _wfinddata_t

__time64_t

_fsize_t

_finddata32_t, _wfinddata32_t

__time32_t

_fsize_t

__finddata64_t, __wfinddata64_t

__time64_t

__int64

_finddata32i64_t, _wfinddata32i64_t

__time32_t

__int64

_finddata64i32_t, _wfinddata64i32_t

__time64_t

_fsize_t

_fsize_tis a typedef for unsigned long (32 bits).

Příklad

// crt_find.c
// This program uses the 32-bit _find functions to print
// a list of all files (and their attributes) with a .C extension
// in the current directory.

#include <stdio.h>
#include <stdlib.h>
#include <io.h>
#include <time.h>

int main( void )
{
   struct _finddata_t c_file;
   intptr_t hFile;

   // Find first .c file in current directory 
   if( (hFile = _findfirst( "*.c", &c_file )) == -1L )
      printf( "No *.c files in current directory!\n" );
   else
   {
      printf( "Listing of .c files\n\n" );
      printf( "RDO HID SYS ARC  FILE         DATE %25c SIZE\n", ' ' );
      printf( "--- --- --- ---  ----         ---- %25c ----\n", ' ' );
      do {
         char buffer[30];
         printf( ( c_file.attrib & _A_RDONLY ) ? " Y  " : " N  " );
         printf( ( c_file.attrib & _A_HIDDEN ) ? " Y  " : " N  " );
         printf( ( c_file.attrib & _A_SYSTEM ) ? " Y  " : " N  " );
         printf( ( c_file.attrib & _A_ARCH )   ? " Y  " : " N  " );
         ctime_s( buffer, _countof(buffer), &c_file.time_write );
         printf( " %-12s %.24s  %9ld\n",
            c_file.name, buffer, c_file.size );
      } while( _findnext( hFile, &c_file ) == 0 );
      _findclose( hFile );
   }
}
  

Viz také

Referenční dokumentace

Systémová volání