[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
xp 实测好像没有问题,回家用 win7 试下

TOP

回复 6# xxpinqz


    我勒个去,看撸主 ID 是不会干这种事的...是吧?是吧?

TOP

本帖最后由 CrLf 于 2014-9-30 17:55 编辑

用 tcc 试了下,好像 _findfirst 和 FindNextFile 都存在此问题,但奇怪的是和 dir 的输出又有那么点不太一样
  1. #include <windows.h>
  2. #include <winbase.h>
  3. #include <io.h>
  4. int by_findfirst(char *path){
  5.     struct _finddata_t FileInfo;
  6.     long Handle;
  7.     int i=0;
  8.     if((Handle=_findfirst(path,&FileInfo))!=-1L)
  9.     {
  10.         while(!_findnext(Handle,&FileInfo))printf("%s\n",FileInfo.name,i++);
  11.         _findclose(Handle);
  12.     }
  13.     return i;
  14. }
  15. int byFindFirstFile(char *path){
  16.     WIN32_FIND_DATA FileInfo;
  17.     long Handle;
  18.     int i=0;
  19.     if((Handle=FindFirstFile(path,&FileInfo))!=-1L){
  20.         while(FindNextFile(Handle,&FileInfo))printf("%s\n",FileInfo.cFileName,i++);
  21.         FindClose(Handle);
  22.     }
  23.     return i;
  24. }
  25. int main()
  26. {
  27.     char path[999] = "352*.png";
  28.     printf("\n_findfirst 共 %d 个结果\n\n",by_findfirst(path));
  29.     printf("\nFindNextFile 共 %d 个结果\n\n",byFindFirstFile(path));
  30.     return 0;
  31. }
复制代码
输出:
356话_005.png
352话_001.png
352话_002.png
352话_003.png
352话_004.png
352话_005.png

_findfirst 共 6 个结果

356话_005.png
352话_001.png
352话_002.png
352话_003.png
352话_004.png
352话_005.png

FindFirstFile 共 6 个结果

而 dir 352*.png 的结果是:
2014/09/29  14:53                 3 355话_005.png
2014/09/29  14:53                 3 356话_005.png
2014/09/29  14:53                 3 352话_001.png
2014/09/29  14:53                 3 352话_002.png
2014/09/29  14:53                 3 352话_003.png
2014/09/29  14:53                 3 352话_004.png
2014/09/29  14:53                 3 352话_005.png
               7 个文件             21 字节

TOP

返回列表