Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Fungsi-fungsi ini mencari dan menutup pencarian untuk nama file tertentu:
Keterangan
Fungsi ini _findfirst
menyediakan informasi tentang instans pertama nama file yang cocok dengan file yang ditentukan dalam filespec
argumen. Anda dapat menggunakan dalam filespec
kombinasi karakter kartubebas apa pun yang didukung oleh sistem operasi host.
Fungsi mengembalikan informasi file dalam _finddata_t
struktur, yang didefinisikan dalam IO.h
. Berbagai fungsi dalam keluarga menggunakan banyak variasi pada _finddata_t
struktur. Struktur dasar _finddata_t
mencakup elemen-elemen berikut:
unsigned attrib
Atribut file.
time_t time_create
Waktu pembuatan file (-1L
untuk sistem file FAT). Kali ini disimpan dalam format UTC. Untuk mengonversi ke waktu lokal, gunakan localtime_s
.
time_t time_access
Waktu akses file terakhir (-1L
untuk sistem file FAT). Kali ini disimpan dalam format UTC. Untuk mengonversi ke waktu lokal, gunakan localtime_s
.
time_t time_write
Waktu penulisan terakhir ke file. Kali ini disimpan dalam format UTC. Untuk mengonversi ke waktu lokal, gunakan localtime_s
.
_fsize_t size
Panjang file dalam byte.
char name
[ _MAX_PATH
] NULL
-nama yang dihentikan dari file atau direktori yang cocok, tanpa jalur.
Dalam sistem file yang tidak mendukung pembuatan dan waktu akses terakhir file, seperti sistem FAT, time_create
bidang dan time_access
selalu -1L
.
_MAX_PATH
didefinisikan dalam Stdlib.h
sebagai 260 byte.
Anda tidak dapat menentukan atribut target (seperti _A_RDONLY
) untuk membatasi operasi temukan. Atribut ini dikembalikan di attrib
bidang _finddata_t
struktur dan dapat memiliki nilai berikut (ditentukan dalam IO.h
). Pengguna tidak boleh mengandalkan atribut ini menjadi satu-satunya nilai yang mungkin untuk bidang tersebut attrib
.
_A_ARCH
Archive. Atur setiap kali file diubah dan dibersihkan oleh BACKUP
perintah . Nilai: 0x20
.
_A_HIDDEN
File tersembunyi. Tidak sering terlihat dengan DIR
perintah, kecuali Anda menggunakan /AH
opsi . Mengembalikan informasi tentang file normal dan file yang memiliki atribut ini. Nilai: 0x02
.
_A_NORMAL
Biasa. File tidak memiliki atribut lain yang ditetapkan dan dapat dibaca atau ditulis tanpa batasan. Nilai: 0x00
.
_A_RDONLY
Baca-saja. File tidak dapat dibuka untuk ditulis dan file yang memiliki nama yang sama tidak dapat dibuat. Nilai: 0x01
.
_A_SUBDIR
Subdirektori. Nilai: 0x10
.
_A_SYSTEM
File sistem. Tidak biasanya terlihat dengan DIR
perintah, kecuali /A
opsi atau /A:S
digunakan. Nilai: 0x04
.
_findnext
menemukan nama berikutnya, jika ada, yang cocok dengan filespec
argumen yang ditentukan dalam panggilan sebelumnya ke _findfirst
. Argumen fileinfo
harus menunjuk ke struktur yang diinisialisasi oleh panggilan sebelumnya ke _findfirst
. Jika kecocokan fileinfo
ditemukan, konten struktur diubah seperti yang dijelaskan sebelumnya. Jika tidak, itu dibiarkan tidak berubah. _findclose
menutup handel pencarian yang ditentukan dan merilis semua sumber daya terkait untuk dan _findfirst
_findnext
. Handel yang dikembalikan oleh salah satu _findfirst
atau _findnext
harus terlebih dahulu diteruskan ke _findclose
, sebelum operasi modifikasi, seperti menghapus, dapat dilakukan pada direktori yang membentuk jalur yang diteruskan ke mereka.
Anda dapat menumpuk _find
fungsi. Misalnya, jika panggilan ke _findfirst
atau _findnext
menemukan file yang merupakan subdirektori, pencarian baru dapat dimulai dengan panggilan lain ke _findfirst
atau _findnext
.
_wfindfirst
dan _wfindnext
merupakan versi karakter luas dari _findfirst
dan _findnext
. Argumen struktur dari versi karakter lebar memiliki _wfinddata_t
jenis data, yang didefinisikan dalam IO.h
dan di Wchar.h
. Bidang tipe data ini sama dengan bidang tipe _finddata_t
data, kecuali di _wfinddata_t
name
bidang berjenis wchar_t
bukan tipe char
. Jika tidak, _wfindfirst
dan _wfindnext
berulah identik dengan _findfirst
dan _findnext
.
_findfirst
dan _findnext
gunakan jenis waktu 64-bit. Jika Anda harus menggunakan jenis waktu 32-bit lama, Anda dapat menentukan _USE_32BIT_TIME_T
. Versi fungsi-fungsi ini yang memiliki 32
akhiran dalam namanya menggunakan jenis waktu 32-bit, dan yang dengan 64
akhiran menggunakan jenis waktu 64-bit.
Functions _findfirst32i64
, _findnext32i64
, _wfindfirst32i64
, dan _wfindnext32i64
juga bereaksi identik dengan versi jenis waktu 32-bit dari fungsi-fungsi ini kecuali mereka menggunakan dan mengembalikan panjang file 64-bit. Functions _findfirst64i32
, _findnext64i32
, _wfindfirst64i32
, dan _wfindnext64i32
gunakan jenis waktu 64-bit tetapi gunakan panjang file 32-bit. Fungsi-fungsi ini menggunakan variasi _finddata_t
jenis yang sesuai di mana bidang memiliki jenis yang berbeda untuk waktu dan ukuran file.
_finddata_t
sebenarnya adalah makro yang mengevaluasi ke _finddata64i32_t
(atau _finddata32_t
jika _USE_32BIT_TIME_T
ditentukan). Tabel berikut ini meringkas variasi pada _finddata_t
:
Struktur | Jenis waktu | Jenis ukuran file |
---|---|---|
_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
adalah typedef
untuk unsigned long
(32 bit).
Contoh
// 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