首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

求大神详解!解决思路

2013-06-26 
求大神详解!!!!#includewindows.h#includestring.h#includestdio.hintmain(intargc,char*argv[]){WI

求大神详解!!!!
#include   <windows.h>  
#include   <string.h>  
#include   <stdio.h>  
   
  int   main(int   argc,   char   *argv[])  
  {  
        WIN32_FIND_DATA   FindFileData;  
        HANDLE   hFind   =   INVALID_HANDLE_VALUE;  
        char   DirSpec[MAX_PATH];     //   directory   specification  
        DWORD   dwError;  
   
        printf   ("Target   directory   is   %s.\n",   argv[1]);
        strncpy   (DirSpec,   argv[1],   strlen(argv[1])+1);
        strncat   (DirSpec,   "\\*",   3);
   
        hFind   =   FindFirstFile(DirSpec,   &FindFileData);  
        if   (hFind   ==   INVALID_HANDLE_VALUE)    
        {  
              printf   ("Invalid   file   handle.   Error   is   %u\n",   GetLastError());  
              return   (-1);  
        }    
        else    
        {  
              printf   ("First   file   name   is   %s\n",   FindFileData.cFileName);  
              while   (FindNextFile(hFind,   &FindFileData)   !=   0)    
              {  
                    printf   ("Next   file   name   is   %s\n",   FindFileData.cFileName);  
              }  
           
              dwError   =   GetLastError();  
              FindClose(hFind);  
              if   (dwError   !=   ERROR_NO_MORE_FILES)    
              {  


                    printf   ("FindNextFile   error.   Error   is   %u\n",   dwError);  
                    return   (-1);  
              }  
        }  
        return   (0);  
  }
求解
[解决办法]

int   main(int   argc,   char   *argv[])  
  {  
        WIN32_FIND_DATA   FindFileData;  
        HANDLE   hFind   =   INVALID_HANDLE_VALUE;  
        char   DirSpec[MAX_PATH];     //   directory   specification  
        DWORD   dwError;  
        //前面定义就没啥好说的了.
        printf   ("Target   directory   is   %s.\n",   argv[1]);  //打印:目录所在
        strncpy   (DirSpec,   argv[1],   strlen(argv[1])+1);  //把路径copy到DirSpec
        strncat   (DirSpec,   "\\*",   3);
   
        hFind   =   FindFirstFile(DirSpec,   &FindFileData);  //查找文件
        if   (hFind   ==   INVALID_HANDLE_VALUE)    //查找失败..
        {  
              printf   ("Invalid   file   handle.   Error   is   %u\n",   GetLastError());  
              return   (-1);  
        }    
        else    
        {  //查找成功后的操作..打印第一个文件是XX..第二个..第三个文件..依次文件名
              printf   ("First   file   name   is   %s\n",   FindFileData.cFileName);  
              while   (FindNextFile(hFind,   &FindFileData)   !=   0)    


              {  
                    printf   ("Next   file   name   is   %s\n",   FindFileData.cFileName);  
              }  
           
              dwError   =   GetLastError();  
              FindClose(hFind);  //关闭句柄
              if   (dwError   !=   ERROR_NO_MORE_FILES)    //返回错误信息.
              {  
                    printf   ("FindNextFile   error.   Error   is   %u\n",   dwError);  
                    return   (-1);  
              }  
        }  
        return   (0);  
  }

热点排行