_findfirst _wfindfirst
提供符合指定的檔案的檔名的第一個執行個體的相關資訊filespec引數。
intptr_t _findfirst(
const char *filespec,
struct _finddata_t *fileinfo
);
intptr_t _findfirst32(
const char *filespec,
struct _finddata32_t *fileinfo
);
intptr_t _findfirst64(
const char *filespec,
struct _finddata64_t *fileinfo
);
intptr_t _findfirsti64(
const char *filespec,
struct _finddatai64_t *fileinfo
);
intptr_t _findfirst32i64(
const char *filespec,
struct _finddata32i64_t *fileinfo
);
intptr_t _findfirst64i32(
const char *filespec,
struct _finddata64i32_t *fileinfo
);
intptr_t _wfindfirst(
const wchar_t *filespec,
struct _wfinddata_t *fileinfo
);
intptr_t _wfindfirst32(
const wchar_t *filespec,
struct _wfinddata32_t *fileinfo
);
intptr_t _wfindfirst64(
const wchar_t *filespec,
struct _wfinddata64_t *fileinfo
);
intptr_t _wfindfirsti64(
const wchar_t *filespec,
struct _wfinddatai64_t *fileinfo
);
intptr_t _wfindfirst32i64(
const wchar_t *filespec,
struct _wfinddata32i64_t *fileinfo
);
intptr_t _wfindfirst64i32(
const wchar_t *filespec,
struct _wfinddata64i32_t *fileinfo
);
參數
filespec
目標檔案規格 (可以包含萬用字元)。fileinfo
檔案資訊的緩衝區。
傳回值
如果成功的話, _findfirst傳回用來識別檔案或一組符合的檔案之唯一的搜尋控制代碼filespec規格,可在後續的呼叫 _findnext 或_findclose。 否則, _findfirst會傳回 – 1,並設定errno為下列值之一。
EINVAL
Invalid parameter: filespec or fileinfo was NULL. 或者,您也可以操作系統傳回意外的錯誤。ENOENT
檔案規格不符。ENOMEM
記憶體不足。EINVAL
無效的檔案名稱規格或指定的檔名超過MAX_PATH。
如需有關這些及其他的傳回碼的詳細資訊,請參閱 _doserrno、 errno、 _sys_errlist,以及 _sys_nerr。
如果傳入了無效的參數,這些函式叫用無效的參數處理常式中,如所述參數驗證。
備註
您必須呼叫 _findclose 之後您便已完成其中一個_findfirst或_findnext函式 (或任何惡意軟體變種)。 這讓應用程式中的這些函式所使用的資源。
這些函式具有各種w前置詞是寬字元版本。 否則,就是相同的相對應的單一位元組函式。
這些函式的變體支援 32 位元或 64 位元的階段型別和 32 位元或 64 位元的檔案大小。 第一個數字尾碼 (32或64) 表示型別的大小時間 ; 第二個字尾是i32或i64,並指出是否要將檔案大小表示為 32 位元或 64 位元的整數。 了解哪種版本都支援 32 位元與 64 位元的階段型別和檔案大小的資訊,請參閱下表。 i32或i64則相當於時間類型而定,大小,所以如果,則會忽略尾碼_findfirst64也支援 64 位元檔案長度和_findfirst32支援僅 32 位元檔案長度。
這些函式會使用各種不同的_finddata_t結構的fileinfo參數。 如需有關結構的詳細資訊,請參閱_find,_wfind 函式。
使用 64 位元時間類型的變化讓檔案建立日期,以用來表示向上 23: 59: 59 之間,3000 年 12 月 31 UTC。 使用 32 位元時間型別代表日期只能透過 19: 14: 07 以後 2038 年 1 月 18 日,UTC。 午夜 1970 年 1 月 1 日,則所有這些函式之日期範圍的下限。
除非您有特殊原因必須使用明確指定時間的大小,請使用的版本_findfirst或_wfindfirst ,或者如果您需要支援大於 3 GB 的檔案大小,請使用_findfirsti64或_wfindfirsti64。 所有這些函式使用的 64 位元階段型別。 在舊版中,這些函式會使用 32 位元階段型別。 如果這是應用程式的重大變更,您可以定義_USE_32BIT_TIME_T還原成舊行為。 如果_USE_32BIT_TIME_T定義時, _findfirst, _finfirsti64,以及其對應的 Unicode 版本使用 32 位元的時間。
時間類型和檔案長度型別不同的 _findfirst
功能 |
_USE_32BIT_TIME_T定義? |
時間類型 |
檔案長度的型別 |
---|---|---|---|
_findfirst, _wfindfirst |
未定義 |
64 位元 |
32 位元 |
_findfirst, _wfindfirst |
已定義 |
32 位元 |
32 位元 |
_findfirst32, _wfindfirst32 |
不會受到巨集定義 |
32 位元 |
32 位元 |
_findfirst64, _wfindfirst64 |
不會受到巨集定義 |
64 位元 |
64 位元 |
_findfirsti64, _wfindfirsti64 |
未定義 |
64 位元 |
64 位元 |
_findfirsti64, _wfindfirsti64 |
已定義 |
32 位元 |
64 位元 |
_findfirst32i64, _wfindfirst32i64 |
不會受到巨集定義 |
32 位元 |
64 位元 |
_findfirst64i32, _wfindfirst64i32 |
不會受到巨集定義 |
64 位元 |
32 位元 |
泛用文字常式對應
Tchar.h 常式 |
_Unicode 之後,未定義的 _MBCS |
定義的 _MBCS |
定義 _unicode 之後 |
---|---|---|---|
_tfindfirst |
_findfirst |
_findfirst |
_wfindfirst |
_tfindfirst32 |
_findfirst32 |
_findfirst32 |
_wfindfirst32 |
_tfindfirst64 |
_findfirst64 |
_findfirst64 |
_wfindfirst64 |
_tfindfirsti64 |
_findfirsti64 |
_findfirsti64 |
_wfindfirsti64 |
_tfindfirst32i64 |
_findfirst32i64 |
_findfirst32i64 |
_wfindfirst32i64 |
_tfindfirst64i32 |
_findfirst64i32 |
_findfirst64i32 |
_wfindfirst64i32 |
需求
Function |
所需的標頭 |
---|---|
_findfirst |
<io.h> |
_findfirst32 |
<io.h> |
_findfirst64 |
<io.h> |
_findfirsti64 |
<io.h> |
_findfirst32i64 |
<io.h> |
_findfirst64i32 |
<io.h> |
_wfindfirst |
<io.h> 或者 <wchar.h> |
_wfindfirst32 |
<io.h> 或者 <wchar.h> |
_wfindfirst64 |
<io.h> 或者 <wchar.h> |
_wfindfirsti64 |
<io.h> 或者 <wchar.h> |
_wfindfirst32i64 |
<io.h> 或者 <wchar.h> |
_wfindfirst64i32 |
<io.h> 或者 <wchar.h> |
如需相容性資訊,請參閱相容性在簡介中。
.NET Framework 對等用法
System::IO::DirectoryInfo::GetFiles