Partilhar via


_find, _wfind funções

Essas funções Procurar e fechar procura nomes de arquivo especificado:

Comentários

The _findfirst função fornece informações sobre a primeira instância de um nome de arquivo que corresponda ao arquivo especificado na filespec argumento. Você pode usar em filespec qualquer combinação de caracteres curinga que é suportada pelo sistema operacional do host.

As funções retornam informações sobre o arquivo em um _ finddata_t estrutura, que é definida em IO.h. Várias funções da família usarem muitas variações no _finddata_t estrutura. O básico_finddata_t estrutura inclui os seguintes elementos:

  • unsigned attrib
    Atributo de arquivo.

  • time_t time_create
    time de criação do arquivo (–1L para sistemas de arquivos FAT).Essa time será armazenada no formato UTC.Para converter a time local, use localtime_s.

  • time_t time_access
    time do último acesso de arquivo (–1L para sistemas de arquivos FAT).Essa time será armazenada no formato UTC.Para converter a time local, use localtime_s.

  • time_t time_write
    time da última gravar ao arquivo.Essa time será armazenada no formato UTC.Para converter a time local, use localtime_s.

  • _fsize_t size
    Comprimento do arquivo em bytes.

  • char name[ _MAX_PATH]
    Terminada com caractere nulo nome de arquivo correspondente ou diretório, sem o caminho.

Em sistemas de arquivos que não suportam a criação e sistema autônomo horários dos últimos acessos de um arquivo, sistema autônomo o sistema FAT, o time_create e time_access campos sempre são –1L.

_MAX_PATH é definido no Stdlib.h sistema autônomo 260 bytes.

Não é possível especificar atributos de destino (sistema autônomo, por exemplo, _A_RDONLY) para limitar a operação de localização. Esses atributos são retornados no attrib campo de _finddata_t estruturar e pode ter os seguintes valores (definido na IO.h). Os usuários não devem depender esses sejam os únicos valores possíveis para o attrib campo.

  • _A_ARCH
    arquivar.conjunto sempre que o arquivo é alterado e desmarcado, a BACKUP comando. Valor: 0 x 20.

  • _A_HIDDEN
    Arquivo oculto.Não geralmente visto com o comando DIR, a menos que você use o /AH opção. Retorna informações sobre os arquivos normais e os arquivos que têm este atributo.Valor: 0 x 02.

  • _A_NORMAL
    Normal.Arquivo não tenha outros atributos definido e podem leitura ou gravados para sem restrição.Valor: 0 x 00.

  • _A_RDONLY
    Somente leitura.Arquivo não pode ser aberto para gravação e não pode ser criado um arquivo que tenha o mesmo nome.Valor: 0 x 01.

  • _A_SUBDIR
    Subdiretório.Valor: 0 x 10.

  • _A_SYSTEM
    Arquivo de sistema.Não é normalmente visto com o DIR comando, a menos que o /A ou /A:S opção é usada. Valor: 0x04.

_findnext Localiza o próximo nome, se houver, que corresponde a filespec argumento especificado em uma telefonar anterior a _findfirst. The fileinfo argumento deve apontar para uma estrutura inicializada por telefonar anterior _findfirst. Se uma correspondência for encontrada, a fileinfo estrutura de Sumário é alterada conforme descrito anteriormente. Caso contrário, ela é deixada inalterada._findclose Fecha o identificador de Pesquisar especificado e libera recursos todos os associados para ambos _findfirst e _findnext. O identificador retornado por um dos _findfirst ou _findnext primeiro deve ser passado para _findclose, antes de qualquer modificação, operações, tais sistema autônomo excluir, podem ser executadas em diretórios que formam sistema autônomo caminhos passados para eles.

Você pode aninhar o _find funções. Por exemplo, se uma telefonar para _findfirst ou _findnext Localiza o arquivo de um subdiretório, uma nova Pesquisar possa ser iniciado com outra telefonar para _findfirst ou _findnext.

_wfindfirst e _wfindnext são versões de caractere largo das _findfirst e _findnext. O argumento da estrutura das versões de caractere largo possui o _wfinddata_t tipo de dados, que é definido no IO.h e no Wchar.h. sistema autônomo campos deste tipo de dados são sistema autônomo mesmas do _finddata_t tipo de dados, exceto que, em _wfinddata_t o campo nome do campo é do tipo wchar_t em vez do tipo char. Caso contrário, _wfindfirst e _wfindnext se comportar de forma idêntica para _findfirst e _findnext.

In Visual C++ 2005, _findfirst e _findnext Use o tipo de time de 64 bit. Se você precisar usar o tipo de time de 32 bit antigo, você poderá definir _USE_32BIT_TIME_T. As versões dessas funções que têm o 32 sufixo em seus nomes usam o tipo de time de 32 bit e aqueles com o 64 sufixo usam o tipo de time de 64 bit.

Funções _findfirst32i64, _findnext32i64, _wfindfirst32i64, e _wfindnext32i64 também se comportam exatamente para as versões do tipo de time de 32 bit dessas funções, exceto usam e retornar os tamanhos de arquivo de 64 bit. Functions _findfirst64i32, _findnext64i32, _wfindfirst64i32, and _wfindnext64i32use the 64-bit time type but use 32-bit file lengths.Essas funções usarem variações apropriadas do _finddata_t tipo no qual os campos têm tipos diferentes para o tempo e o dimensionar do arquivo.

_finddata_t é realmente uma macro que é avaliada como _finddata64i32_t (ou _finddata32_t Se _USE_32BIT_TIME_T é definido). A tabela a seguir resume as variações no _finddata_t:

Estrutura

Tipo de time

Tipo de dimensionar de arquivo

_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

In Visual C++ 2005, _fsize_t é um typedef para unsigned long (32 bits).

Exemplo

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

Listing of .c files  RDO HID SYS ARC  FILE         DATE                           SIZE --- --- --- ---  ----         ----                           ----  N   N   N   Y   blah.c       Wed Feb 13 09:21:42 2002       1715  N   N   N   Y   test.c       Wed Feb 06 14:30:44 2002        312

Consulte também

Referência

Chamadas do sistema