我在写一个图片浏览器的时候会抓取整个文件夹下面的所有数据,显示下一张上一张的时候是根据图片的路径来描述的,所以打开相关文件夹点击图片的时候顺便把当前目录下所有的文件路径存储起来,你也可以写个正则匹配匹配符合后缀名的文件再存储,这里就不写匹配函数了直接把所有的都存储起来。
代码可能有点乱,写给自己看的防止以后忘了,你们可以根据提示,没有提示的照打就好了
#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(); //转为供_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"); //存储中文的时候用到的防止乱码
QString str_a=codec->toUnicode(a)
list.append(str_a);
}
}
_findclose(Handle);