C 獲取資料夾下所有檔名

2022-06-27 06:51:12 字數 2499 閱讀 9387

**:

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 getfiles(string path, vector&files)

1333

//如果不是,加入列表

34else

3538 } while (_findnext(hfile, &fileinfo) == 0

);39

//_findclose函式結束查詢

40_findclose(hfile);41}

42}4344

45int

main()

58 }

2.struct _finddata_t

這個結構體是用來儲存檔案各種資訊的。定義如下:

struct

_finddata_t

;

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

unsigned attrib

檔案屬性的儲存位置。它儲存乙個unsigned單元,用於表示檔案的屬性。檔案屬性是用位表示的,主要有以下一些:

_a_arch(存檔)

_a_hidden(隱藏)

_a_normal(正常)

_a_rdonly(唯讀)

_a_subdir(資料夾)

_a_system(系統)

這些都是在標頭檔案中定義的巨集,可以直接使用,而本身的意義其實是乙個無符號整型(只不過這個整型應該是2的幾次冪,從而保證只有1位為1,而其它位為0)。既然是位表示,那麼當乙個檔案有多個屬性時,它往往是通過位或的方式,來得到幾個屬性的綜合。例如唯讀+隱藏+系統屬性,應該為:

_a_hidden | _a_rdonly | _a_system

time_t time_create:

檔案建立時間

time_t time_access

檔案最後一次被訪問的時間。

time_t time_write

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

_fsize_t size

檔案的大小。這裡的_fsize_t應該相當於unsigned整型,表示檔案的位元組數。

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

3.long findfirst(char* filespec,struct _finddata_t* fileinfo);

返回值:如果查詢成功的話,將返回乙個long型的唯一的查詢用的控制代碼(就是乙個唯一編號)。這個控制代碼將在_findnext函式中被使用。若失敗,則返回-1。

引數

filespec:標明檔案的字串,可支援萬用字元。比如:*.c,則表示當前資料夾下的所有字尾為c的檔案。比如:d:\\test\\*,則表示d盤的test資料夾內的所有檔案。

fileinfo:這裡就是用來存放檔案資訊的結構體的指標。這個結構體必須在呼叫此函式前宣告,不過不用初始化,只要分配了記憶體空間就可以。函式成功後,函式會把找到的檔案的資訊放入這個結構體中。

4.int _findnext( long handle, struct _finddata_t *fileinfo );

返回值:若成功返回0,否則返回-1。

引數

handle:即由_findfirst函式返回回來的控制代碼。

fileinfo:檔案資訊結構體的指標。找到檔案後,函式將該檔案資訊放入此結構體中。

5.int _findclose( long handle );

返回值:成功返回0,失敗返回-1。

引數

handle:_findfirst函式返回回來的控制代碼。

C 獲取資料夾下所有檔名

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

獲取資料夾下所有檔名

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

獲取資料夾下所有檔名

in 1 import osfrom pathlib import path import glob 方法1in 3 dirpath d test 1 判斷是否是目錄 ifos.path.isdir dirpath img names 獲取所有檔名 dir names os.listdir dirp...