c 讀取檔案目錄下所有檔案並輸出

2021-06-15 00:21:34 字數 1635 閱讀 5580

標頭檔案:

"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 型別,這就是乙個控制代碼啦,你不用管...