我在寫一個(gè)圖片瀏覽器的時(shí)候會(huì)抓取整個(gè)文件夾下面的所有數(shù)據(jù),顯示下一張上一張的時(shí)候是根據(jù)圖片的路徑來(lái)描述的,所以打開(kāi)相關(guān)文件夾點(diǎn)擊圖片的時(shí)候順便把當(dāng)前目錄下所有的文件路徑存儲(chǔ)起來(lái),你也可以寫個(gè)正則匹配匹配符合后綴名的文件再存儲(chǔ),這里就不寫匹配函數(shù)了直接把所有的都存儲(chǔ)起來(lái)。
代碼可能有點(diǎn)亂,寫給自己看的防止以后忘了,你們可以根據(jù)提示,沒(méi)有提示的照打就好了
#include <io.h> #include <stdlib.h> #include <windows.h>
string cut_str_addr=head_str+"/*.*";? ? ?????????//匹配head_str目錄下的所有文件
const char *add_jpg=cut_str_addr.data();????//轉(zhuǎn)為供_findfirst處理的char*
long Handle;
struct _finddata_t FileInfo;
Handle=_findfirst(add_jpg,&FileInfo);
string ad;
string last_addr;
const char *a;
const char *add_test;
while(!_findnext(Handle,&FileInfo)){
????ad=FileInfo.name;
????last_addr=str_addr+"/"+ad;?
????add_test=ad.data();
????if(reg_path(add_test)==1){
????????a=last_addr.data();
????????QTextCodec *codec=QTextCodec::codecForName("GBK");? ? //存儲(chǔ)中文的時(shí)候用到的防止亂碼
????????QString str_a=codec->toUnicode(a)
????????list.append(str_a);
}
}
_findclose(Handle);