请问如何获取指定文件夹(包括子文件夹)下所有文件指针?
同标题! 问题点数:30、回复次数:8Top
1 楼xpdavis(咕嘟-不想孤独)回复于 2006-05-01 21:02:39 得分 0
文件指针?你说的是FILE *吗?是这个吗???
没听说有这个功能啊。可以枚举所有的文件,挨个打开就好了,没有偷懒的办法啊。
程序就是一个一个字符敲出来的嘛,耐心点。Top
2 楼keiy()回复于 2006-05-02 10:06:22 得分 0
用C的标准函数findfirst/findnext或VCL的FindFirst/FindNext或API的FindFirstFile/FindNextFileTop
3 楼meteor_opt()回复于 2006-05-03 15:16:45 得分 0
我的问题可能没有写清楚,我现在主要是无法获得指定文件夹下的所有子文件夹名!请问有什么办法吗?Top
4 楼liangqingzhi(老之)回复于 2006-05-03 15:24:39 得分 0
递归Top
5 楼meteor_opt()回复于 2006-05-04 15:13:00 得分 0
我已经使用其他办法实现了功能,但怎样使用API获得子文件夹名?谁能写一个例子,谢谢!我自己在看API手册时没有发现FindFirstFile可以获得字文件夹名。Top
6 楼pp616(坏蛋)回复于 2006-05-08 09:58:41 得分 10
FindFirstFile 可以的。用WIN32_FIND_DATA结构里的dwFileAttributes 来判断
Top
7 楼alloutoflove(andrew)回复于 2006-05-08 10:27:11 得分 10
学会用Google^_^
http://www.zahui.com/html/1/3225.htmTop
8 楼jiangshx(寻平阳)回复于 2006-05-10 10:10:21 得分 10
void myfindfile(char *findpaths, char *findfile,int *fnum)
{
struct ffblk file;
int done,n;
char fpaths[300],*p;
AnsiString strtmp;
FILE *fp;
clock_t clk1,clk2;
float ftime;
n=chdir(findpaths);
if(n==-1)return;
strtmp="正在查找: "; strtmp+=findpaths;
labpaths->Caption=strtmp;
done=findfirst(findfile,&file,0);
if(done!=-1){
//找到文件file.ff_name
(*fnum)++;
}
done=findfirst("*",&file,FA_DIREC);
while(done!=-1){
if(stricmp(file.ff_name,"RECYCLED")==0)goto Next;
if((file.ff_fsize==0)&&(stricmp(file.ff_name,".")!=0)&&(stricmp(file.ff_name,"..")!=0)){
strtmp=findpaths;
strtmp+=file.ff_name;//子文件夹
strtmp+="\\";
myfindfile(strtmp.c_str(),findfile,fnum);
chdir("..");
}
Next:
done = findnext(&file);
}
}Top




