通过 _findfirst 查找文件,查找出多余文件文件问题
我通过_findfirst() 、_findnext()、_findclose() 函数来查找遍历某个目录下的文件。当某个目录为空时,我还是能查找到名称为"."和".."的两个文件。如 _findfirst("C:\\test\\*.", &fileData);
其中C:\\test\\ 为空目录,即目录下无任何文件。而_findfirst仍旧能找到文件,文件属性为_A_SUBDIR,名称为 "."。并且调用_findnext()时还能找到 文件属性为 _A_SUBDIR,名称为".."的文件。
不知什么原因,求解释! _findfirst 查找文件 ..
[解决办法]
.表示当前目录
..表示上层目录
[解决办法]
lz你dir一下,最上面两个就是. 和..了
[解决办法]
system("dir /b /a-d c:\\*.* >d:\\allfiles.txt");
//读文件d:\\allfiles.txt的内容即C:\\下所有文件的名字
system("dir /b /ad c:\\*.* >d:\\alldirs.txt");
//读文件d:\\alldirs.txt的内容即C:\\下所有子目录的名字
请记住,能用shell命令获取文件、文件夹信息或者操作文件、文件夹最好用shell命令获取或者操作,而不要用各种API获取或者操作,因为当遇到非法文件夹名或非法文件名或非法文件长度、非法文件日期、压缩文件、链接文件、稀疏文件……等各种意料之外的情况时,API会处理的不全面或陷入死循环,而shell命令不会。