遍歷某目錄下所有子檔案

2021-07-02 00:39:11 字數 1726 閱讀 5685

win32_find_data

關於檔案的全部屬性資訊。總計有以下以下9種:

檔案的標題名、檔案的屬性(唯讀、存檔,隱藏等)、檔案的建立時間、檔案的最後訪問時間、檔案的最後修改時間、檔案大小的高位雙字、檔案大小的低位雙字、保留、保留。

在這裡只有檔案標題名和檔案的長度可以通過cfile模擬較方便的獲得,而對於其他幾種屬性的獲取和設定就無能為力了。

在用findfirst()和findnext()函式去查詢磁碟檔案時經常使用的乙個資料結構win32_find_data的成員變數裡包含了以上所有的檔案屬性,因此可以通過這個結構作為獲取和更改檔案屬性的手段。該結構的內容如下:

typedef struct _win32_find_data win32_find_data, *pwin32_find_data;

dwfileattributes欄位可以是下面取值的組合,通過這個字段可以檢查找到的究竟是乙個檔案還是乙個子目錄,以及其他的檔案屬性:

可以通過findfirstfile()函式根據當前的檔案存放路徑查詢該檔案來把待操作檔案的相關屬性讀取到win32_find_data結構中去:

win32_find_data ffd ;

handle hfind = findfirstfile(「c:\test.dat」,&ffd);

在使用這個結構時不能手工修改這個結構中的任何資料,結構對於開發人員來說只能作為乙個唯讀資料,其所有的成員變數都會由系統完成填寫。在msdn幫助中可以查詢到關於win32_find_data結構的更加詳細的說明。

收藏findfirstfile

根據檔名查詢檔案。該函式到乙個資料夾(包括子資料夾)去搜尋指定檔案 如果要使用附加屬性去搜尋檔案的話 可以使用findfirstfileex函式。long,如執行成功,返回乙個搜尋控制代碼。如果出錯,返回乙個invalid_handle_value常數,一旦不再需要,應該用findclose函式關閉這個控制代碼

lpctstr lpfilename檔名(包括路徑)

lpwin32_find_data lpfindfiledata 指向乙個用於儲存檔案資訊的結構體

引數 型別及說明

lpfilenamestring,欲搜尋的檔名。引數可如下

(注!一定要帶檔名。如果引數為「c:\windows」,則返回的檔名為「windows」,並且接下來呼叫findnextfile會返回失敗)

lpfindfiledatawin32_find_data,這個結構用於裝載與找到的檔案有關的資訊。該結構可用於後續的搜尋

如果呼叫成功返回乙個控制代碼,可用來做為findnextfile或 findclose引數

呼叫失敗 返回為invalid_handle_value(即-1) ,可呼叫getlasterror來獲取錯誤資訊

示例:

#include 

#include

#include

int findfile(char filepath , long

long num , long

long directory)

while(1)

}else

//找到返回真,即不break;

if(!findnextfile(hfind,&findfiledata))

break;

}//關閉控制代碼

findclose(hfind);

return0;}

int main()

遍歷Symbian某目錄下的所有檔案

1.串轉換成數字 tbuf16 20 buf l 123 tlex lex buf tint inum lex.val inum 2.數字轉換成串 tbuf16 20 buf tint inum 20 buf.format l d inum 3.將symbian串轉換成char串 char p nu...

shell遍歷目錄下所有檔案

filelist ls home work file for file in filelist do echo file done 一定要切記filelist 後邊的那個引號不是單引號,而是tab鍵上邊的那個鍵,或者說是1左邊的那個鍵。否則的話不起作用。唉,自己在上吃虧了好長時間。汗!如果ls後面的...

Java 遍歷目錄下所有檔案

file file new file files 2.申請兩個arrylist空間,乙個存放目錄,乙個存放檔案 listfilelist new arraylist 檔案儲存 listfileslistdir new arraylist 目錄儲存3.讀取目錄下的所有檔案 file filearr f...