C 獲取資料夾下的所有檔名

2021-10-21 11:14:21 字數 1477 閱讀 3031

首先了解一下這個結構體

struct _finddata_t

;其中各成員變數的含義如下:

unsigned atrrib: 檔案屬性的儲存位置。它儲存乙個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 time_access: 檔案最後一次被訪問的時間。

time_t time_write: 檔案最後一次被修改的時間。

_fsize_t size: 檔案的大小。

char name [_max_fname ]:檔案的檔名。這裡的_max_fname是乙個常量巨集,它在標頭檔案中被定義,表示的是檔名的最大長度。

查詢檔案需要用到_findfirst 和 _findnext 兩個函式,這兩個函式包含在io.h庫中

1、_findfirst函式:long

_findfirst

(const

char*,

struct _finddata_t *);

第乙個引數為檔名,可以用"*.*"來查詢所有檔案,也可以用"*.cpp"來查詢.cpp檔案。第二個引數是_finddata_t結構體指標。若查詢成功,返回檔案控制代碼,若失敗,返回-1。

2、_findnext函式:int

_findnext

(long

,struct _finddata_t *);

第乙個引數為檔案控制代碼,第二個引數同樣為_finddata_t結構體指標。若查詢成功,返回0,失敗返回-1。

3、_findclose

()函式:int

_findclose

(long);

只有乙個引數,檔案控制代碼。若關閉成功返回0,失敗返回-

1。**及實現

#include

#include

#include

#include

using

namespace std;

void

getlineandprint

(string in_name)

string str;

while

(getline

(fin, str))}

intmain()

else

_findclose

(handle);}

}

C 獲取資料夾下所有檔名

查詢檔案需要乙個結構體和幾個函式。結構體為struct finddata t,函式為 findfirst findnext和 findclose。struct finddata t 這個結構體是用來儲存檔案各種資訊的。定義如下 struct finddata t 其中各成員變數的含義如下 unsig...

C 獲取資料夾下所有檔名

1.實現 1 2 author codingmengmeng 3 theme 獲取指定資料夾下的所有檔名 4 time 2017 1 13 11 46 22 5 blog 7 include 8 include 9 include 10 using namespace std 1112 void g...

獲取資料夾下所有檔名

有時我們想要把乙個資料夾中的所有檔名整理到乙個execl檔案中,便於管理和查詢以及列印,多數是使用 複製 貼上 方法 將資料夾中的檔案重新命名,在可編輯狀態下進行複製,而後在其他文件中貼上 這種辦法可行,但對於資料夾中有大量的檔案的情況,則工作效率低,而且做完後必須核對。利用dos的重定向命令 可方...