_find, _wfind İşlevleri

Bu işlevler arayabilir ve belirtilen dosya adları arar kapatın:

Notlar

_findfirst İşlevi belirtilen dosyayla eşleşen bir dosya adı ilk örneği hakkında bilgi sağlar filespec bağımsız değişkeni.Kullanabileceğiniz filespec ana bilgisayar işletim sistemi tarafından desteklenen joker karakterler herhangi bir birleşimi.

İşlevler dosya bilgileri döndürür _finddata_t IO.h içinde tanımlanan yapı.Pek çok çeşitleme ailesi çeşitli işlevleri kullanmak _finddata_t yapısı.Temel _finddata_t yapısı aşağıdaki öğeleri içerir:

  • unsigned attrib
    Dosya özniteliği.

  • time_t time_create
    Dosya oluşturma (–1L fat dosya sistemleri için) zamanı.Bu kez utc biçiminde depolanır.Yerel saate dönüştürmek için kullanın localtime_s.

  • time_t time_access
    Son dosya erişimi (–1L fat dosya sistemleri için) zamanı.Bu kez 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 kez 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]
    Biten adı eşleşen dosya veya yol olmadan dizin.

Oluşturma ve fat sistemi gibi bir dosyanın son erişim sayılarını desteklemez dosya sistemlerinde time_create ve time_access alanları, her zaman –1L.

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

Hedef öznitelikleri belirtilemez (gibi _A_RDONLY) Bul işlemi sınırlamak için.Bu öznitelikler döndürülür attrib , alan _finddata_t yapı ve (içinde tanımlanan IO.h) aşağıdaki değerlere sahip olabilir.Kullanıcılar değil VML'ye bunlar için olası değerler olan attrib alan.

  • _A_ARCH
    Arşiv.Her dosya değiştirildi ve temizlenmiş olarak ayarlanmış BACKUP komut.Değer: 0x20.

  • _A_HIDDEN
    Gizli bir dosya.Kullandığınız sürece DIR komutuyla değil genellikle görülen /AH seçeneği.Normal dosya ve bu özniteliği olan dosyaları hakkında bilgi verir.Değer: 0x02.

  • _A_NORMAL
    Normal.Dosya var Hayır diğer öznitelikleri ayarlamak ve okunabilir veya kısıtlama yazılır.Değer: 0x00.

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

  • _A_SUBDIR
    Alt dizin.Değer: 0x10.

  • _A_SYSTEM
    Sistem dosyası.İle değil normalde görülen DIR sürece, komut /A veya /A:S seçeneği kullanılır.Değer: 0x04.

_findnextsonraki adı, varsa, eşleşen bulur filespec önceki bir çağrı için belirtilen bağımsız değişken _findfirst.fileinfo Bağımsız değişkeni önceki çağrı tarafından başlatılan bir yapı üzerine _findfirst.Bir eşleşme bulunursa, fileinfo yukarıda anlatıldığı gibi yapısı içeriği değiştirilir.Aksi durumda, sol değişmeden._findcloseBelirtilen arama tanıtıcısı kapatır ve her ikisi için de ilişkili tüm kaynaklar serbest _findfirst ve _findnext.Tarafından döndürülen tanıtıcıyı _findfirst veya _findnext için önce geçirilmelidir _findclose, kendilerine iletilen yolları oluşturan dizinleri değiştirme işlemleri, silme gibi yapılabilmesi.

İç içe yerleştirebilirsiniz _find fonksiyonlar.Örneğin, bir çağrı, _findfirst veya _findnext bulur bir alt dizin, yeni bir arama olan dosya başlatılan başka bir çağrı ile _findfirst veya _findnext.

_wfindfirstve _wfindnext geniş karakter sürümleri _findfirst ve _findnext.Geniş karakter sürümlerinin yapısı baðýmsýz deðiþkeni vardýr _wfinddata_t IO.h ve Wchar.h tanımlanmış veri türü.Bu veri türündeki alanların alanındakiyle aynı olması _finddata_t dışında veri türü _wfinddata_t ad alanının türü olan wchar_t türü yerine char.Aksi halde _wfindfirst ve _wfindnext kadar aynı şekilde davranır _findfirst ve _findnext.

_findfirstve _findnext 64-bit saat türü kullanın.32-Bit uçup türü kullanmanız gerekiyorsa, tanımladığınız _USE_32BIT_TIME_T.Bu işlevleri sürümlerini 32 adlarında soneki kullanan 32-bit saat türü ve olanlar 64 son 64-bit saat türü kullanın.

İşlevleri _findfirst32i64, _findnext32i64, _wfindfirst32i64, ve _wfindnext32i64 kullanın ve 64-bit dosya uzunluğu dönmek dışında da bu işlevleri 32-bit saat türü sürümleri için özdeş olarak davranır.İşlevleri _findfirst64i32, _findnext64i32, _wfindfirst64i32, ve _wfindnext64i3264-bit saat türü kullanın ancak 32-bit dosya uzunlukları kullanın.Uygun çeşitlerini bu işlevleri kullanma _finddata_t , alanınız değişik zaman ve dosya boyutu için türü.

_finddata_taslında değerlendiren bir makro _finddata64i32_t (veya _finddata32_t , _USE_32BIT_TIME_T tanımlanır).Üzerinde Çeşitlemeler aşağıdaki tabloda özetlenmiştir _finddata_t:

Yapı

Saat türü

Dosya boyut 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_tis a typedef for unsigned long (32 bits).

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

Ayrıca bkz.

Başvuru

Sistem Çağrıları