fileName işlevleri ara

Bu işlevler, belirtilen dosya adlarını arar ve aramaları kapatır:

Açıklamalar

işlevi, _findfirst bağımsız değişkende filespec belirtilen dosyayla eşleşen bir dosya adının ilk örneği hakkında bilgi sağlar. Konak işletim sistemi tarafından desteklenen joker karakterlerin herhangi bir bileşiminde kullanabilirsiniz filespec .

İşlevler dosya bilgilerini içinde tanımlanan bir _finddata_t yapıda IO.hdöndürür. Ailedeki çeşitli işlevler yapı üzerinde _finddata_t birçok varyasyon kullanır. Temel _finddata_t yapı aşağıdaki öğeleri içerir:

unsigned attrib
Dosya özniteliği.

time_t time_create
Dosya oluşturma zamanı (-1L FAT dosya sistemleri için). Bu süre UTC biçiminde depolanır. Yerel saate dönüştürmek için kullanın localtime_s.

time_t time_access
Son dosya erişiminin zamanı (-1L FAT dosya sistemleri için). Bu süre UTC biçiminde depolanır. Yerel saate dönüştürmek için kullanın localtime_s.

time_t time_write
Dosyaya son yazma zamanı. Bu süre UTC biçiminde depolanır. Yerel saate dönüştürmek için kullanın localtime_s.

_fsize_t size
Dosyanın bayt cinsinden uzunluğu.

char name[ _MAX_PATH] NULL-yol olmadan eşleşen dosya veya dizinin sonlandırılan adı.

FAT sistemi gibi bir dosyanın oluşturulmasını ve son erişim zamanlarını desteklemeyen dosya sistemlerinde time_create ve time_access alanları her zaman -1Lolur.

_MAX_PATH 260 bayt olarak tanımlanır Stdlib.h .

Bulma işlemini sınırlamak için hedef öznitelikleri (örneğin _A_RDONLY) belirtemezsiniz. Bu öznitelikler, yapının alanında döndürülür attrib ve aşağıdaki değerlere sahip olabilir (içinde tanımlanmıştırIO.h)._finddata_t Kullanıcılar bu özniteliklerin alan için attrib mümkün olan tek değer olmasına güvenmemelidir.

_A_ARCH
Arşiv. Dosya her değiştirildiğinde ve komutu tarafından BACKUP temizlendiğinde ayarlayın. Değer: 0x20.

_A_HIDDEN
Gizli dosya. seçeneğini kullanmadığınız /AH sürece komutuyla DIR sık sık görülmez. Bu özniteliğe sahip normal dosyalar ve dosyalar hakkındaki bilgileri döndürür. Değer: 0x02.

_A_NORMAL
Normal. Dosyada başka öznitelik ayarlanmadı ve kısıtlama olmadan okunabilir veya yazılabilir. Değer: 0x00.

_A_RDONLY
Salt okunur. Dosya yazmak için açılamıyor ve aynı ada sahip bir dosya oluşturulamıyor. Değer: 0x01.

_A_SUBDIR
Altdizin. Değer: 0x10.

_A_SYSTEM
Sistem dosyası. veya /A:S seçeneği kullanılmadığı sürece /A normalde komutuyla DIR görülmez. Değer: 0x04.

_findnext, daha önceki bir çağrısında _findfirstbelirtilen bağımsız değişkenle filespec eşleşen bir sonraki adı (varsa) bulur. bağımsız değişkeni, fileinfo önceki çağrısı tarafından başlatılan bir yapıya _findfirstişaret etmelidir. Eşleşme bulunursa, fileinfo yapı içeriği daha önce açıklandığı gibi değiştirilir. Aksi takdirde, değişmeden bırakılır. _findclose belirtilen arama tutamacını kapatır ve hem hem de _findfirst _findnextiçin tüm ilişkili kaynakları serbest bırakır. Silme gibi değişiklik işlemleri, kendilerine geçirilen yolları oluşturan dizinlerde gerçekleştirilmeden önce veya _findnext tarafından _findfirst döndürülen tanıtıcının önce öğesine geçirilmesi _findclosegerekir.

İşlevleri iç içe _find yerleştirebilirsiniz. Örneğin, bir çağrısı _findfirst veya _findnext alt dizin olan dosyayı bulursa, veya _findnextiçin başka bir çağrıyla _findfirst yeni bir arama başlatılabilir.

_wfindfirst ve _wfindnext 'nin _findfirst _findnextgeniş karakterli sürümleridir. Geniş karakterli sürümlerin yapı bağımsız değişkeni, içinde ve içinde IO.h tanımlanan veri türüne Wchar.hsahiptir_wfinddata_t. Bu veri türünün alanları, veri türündeki alanlarla _finddata_t aynıdır, ancak _wfinddata_t name alanında türü yerine türündedir wchar_t char. Aksi takdirde ve _wfindfirst _wfindnext ile _findfirst _findnextaynı şekilde davranır.

_findfirst ve _findnext 64 bit zaman türünü kullanın. Eski 32 bit zaman türünü kullanmanız gerekiyorsa tanımlayabilirsiniz _USE_32BIT_TIME_T. Bu işlevlerin adlarında soneki olan 32 sürümleri 32 bit zaman türünü, soneki olanlar 64 ise 64 bit zaman türünü kullanır.

, _findnext32i64, _wfindfirst32i64ve _wfindnext32i64 işlevleri_findfirst32i64, 64 bit dosya uzunluklarını kullanıp döndürmeleri dışında, bu işlevlerin 32 bit zaman türü sürümleriyle aynı şekilde davranır. İşlevler _findfirst64i32, _findnext64i32, _wfindfirst64i32ve _wfindnext64i32 64 bit zaman türünü kullanır, ancak 32 bit dosya uzunluklarını kullanır. Bu işlevler, alanların zaman ve dosya boyutu için farklı türlere sahip olduğu türün uygun çeşitlemelerini _finddata_t kullanır.

_finddata_t aslında olarak değerlendirilen _finddata64i32_t (veya _finddata32_t tanımlanmışsa _USE_32BIT_TIME_T ) bir makrodur. Aşağıdaki tabloda üzerindeki _finddata_tçeşitlemeler özetlemektedir:

Yapı Saat türü Dosya boyutu türü
_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_t bir typedef for unsigned long (32 bit).

Örnek

// 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

Ayrıca bkz.

Sistem çağrıları