標頭檔案:
"io.h"
參與的函式:
//搜尋與指定的檔名稱匹配的第乙個例項,若成功則返回第乙個例項的控制代碼,否則返回-1l
long _findfirst( char *filespec, struct _finddata_t *fileinfo );
//搜尋與_
findfirst
函式提供的檔名稱匹配的下乙個例項,若成功則返回0,否則返回-1
int _findnext(
intptr_t handle,
struct _finddata_t *fileinfo);
//關閉由findfirstfile函式建立的乙個搜尋控制代碼
bool findclose(
handle hfindfile
); // file search handle findfirstfile建立的控制代碼
//關閉findfirstfile建立的搜尋控制代碼
返回值
long,非零表示成功,零表示失敗。會設定getlasterror
struct _finddata_t 是用來儲存檔案各種資訊的結構體:
struct _finddata_t
; 其中各
成員變數
的含義如下:
unsigned attrib:
檔案屬性的儲存位置。它儲存乙個unsigned單元,用於表示檔案的屬性。
檔案屬性是用位表示的,主要有以下一些:
_a_arch(存檔)
_a_hidden(隱藏)
_a_normal(正常)
_a_rdonly(唯讀)
_a_subdir(資料夾)
_a_system(系統)
這些都是在中定義的巨集,可以直接使用,而本身的意義其實是乙個無符號整型(只不過這個整型應該是2的幾次冪,從而保證只有一位為1,而其他位為0)。既然是位表示,那麼當乙個檔案有多個屬性時,它往往是通過位或的方式,來得到幾個屬性的綜合。例如唯讀+隱藏+系統屬性,應該為:_a_hidden | _a_rdonly | _a_system 。
time_t time_create:
這裡的time_t是乙個變數型別(長整型?相當於long int?),用來儲存時間的,我們暫時不用理它,只要知道,這個time_create變數是用來儲存檔案建立時間的就可以了。
time_t time_access:檔案最後一次被訪問的時間。
time_t time_write:檔案最後一次被修改的時間。
_fsize_t size:檔案的大小。這裡的_fsize_t應該可以相當於unsigned整型,表示檔案的位元組數。
char name[_max_fname]:檔案的檔名。這裡的_max_fname是乙個常量巨集,它在標頭檔案中被定義,表示的是檔名的最大長度。
程式例項:
#include "stdafx.h"
#include
#include
#include
using namespace std;
int _tmain(int argc, _tchar* argv)
else
cout_findclose(longf);
return 0;}
讀取指定目錄下的所有檔案
在開發或者面試的過程中,往往會遇到這樣的需求,就是讀取某個目錄下的所有檔案 內容 並且資料夾的層級不固定。基於這樣的情況,博主寫了個對應的demo,以備不時之需。檔案系統層級關係可以看成是樹形結構,讀取某個目錄下的所有檔案,其實就是遍歷一顆樹,樹的遍歷分為深度優先和廣度優先。對應的,分別寫了兩個小d...
C 讀取指定檔案目錄下的所有檔名
string file 你要查詢的檔名 1 使用c 獲取指定目錄下的所有檔名稱,實際 如下 string filepath 等到的完整的檔名 string filenames directory.getfiles f dfasfafaf searchoption.alldirectories 獲取目...
遍歷輸出指定目錄下的所有檔案
opendir readdir closedir 這三個函式主要用來遍歷目錄。在使用這三個函式前必須先包括 以下兩個標頭檔案 include include opendir 函式的原型為 dir opendir const char name 它返回乙個 dir 型別,這就是乙個控制代碼啦,你不用管...