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

求C语言来帮忙!

2012-03-16 
求C语言高手进来帮忙!!!voidFindFileInDir(char*rootDir,char*strRet){charfname[MAC_FILENAMELENOPATH]Z

求C语言高手进来帮忙!!!
void   FindFileInDir(char*   rootDir,   char*   strRet)
{
        char   fname[MAC_FILENAMELENOPATH];
        ZeroMemory(fname,   MAC_FILENAMELENOPATH);
        WIN32_FIND_DATA   fd;
        ZeroMemory(&fd,   sizeof(WIN32_FIND_DATA));
        HANDLE   hSearch;
        char   filePathName[256];
        char   tmpPath[256];
        ZeroMemory(filePathName,   256);
        ZeroMemory(tmpPath,   256);
        strcpy(filePathName,   rootDir);
        BOOL   bSearchFinished   =   FALSE;

        if(   filePathName[strlen(filePathName)   -1]   !=   '\\ '   )
        {
              strcat(filePathName,   "\\ ");
        }
        strcat(filePathName,   "* ");
        hSearch   =   FindFirstFile(filePathName,   &fd);
        //Is   directory
        if(   (fd.dwFileAttributes   &   FILE_ATTRIBUTE_DIRECTORY)
              &&   strcmp(fd.cFileName,   ". ")   &&   strcmp(fd.cFileName,   ".. ")   )              
        {
              strcpy(tmpPath,   rootDir);
              strcat(tmpPath,   fd.cFileName);
              FindFileInDir(tmpPath,   strRet);
        }
        else   if(   strcmp(fd.cFileName,   ". ")   &&   strcmp(fd.cFileName,   ".. ")   )
                            {
                                    sprintf(fname,   "%-50.50s ",   fd.cFileName);
                                    strcat(strRet   +   strRet[strlen(strRet)]   ,   fname);
                            }
        while(   !bSearchFinished   )
        {
              if(   FindNextFile(hSearch,   &fd)   )
              {
                      if(   (fd.dwFileAttributes   &   FILE_ATTRIBUTE_DIRECTORY)
                            &&   strcmp(fd.cFileName,   ". ")   &&   strcmp(fd.cFileName,   ".. ")   )              
                      {
                            strcpy(tmpPath,   rootDir);


                            strcat(tmpPath,   fd.cFileName);
                            FindFileInDir(tmpPath,   strRet);
                      }
                      else   if(   strcmp(fd.cFileName,   ". ")   &&   strcmp(fd.cFileName,   ".. ")   )
                                          {
                                                  sprintf(fname,   "%-50.50s ",   fd.cFileName);
                                                  strcat(strRet   +   strRet[strlen(strRet)]   ,   fname);
                                          }
              }
              else
              {
                      if(   GetLastError()   ==   ERROR_NO_MORE_FILES   )                     //Normal   Finished
                      {
                            bSearchFinished   =   TRUE;
                      }
                      else
                            bSearchFinished   =   TRUE;           //Terminate   Search
              }
        }
        FindClose(hSearch);
}

这段代码怎么让他在VC++6.0中编译通过
需要什么头文件

[解决办法]
本来想睡觉了
又睡不着
看看我发的问题有没有答案先
这个论坛真火啊
刚发的就有人回复了
不过没有解决问题

在来看看你的那个
花了几分钟改成了 C语言
贴出来了
你把下边的代码复制
另存为后缀为 .C 的文件
然后 编译 就可以了


#include <windows.h>
#include <stdio.h>


void FindFileInDir(char* rootDir, char* strRet)
{
char fname[256];
WIN32_FIND_DATA fd;
HANDLE hSearch;
char filePathName[256];
char tmpPath[256];

BOOL bSearchFinished = FALSE;

ZeroMemory(fname,256);
ZeroMemory(&fd, sizeof(WIN32_FIND_DATA));

ZeroMemory(filePathName, 256);
ZeroMemory(tmpPath, 256);
strcpy(filePathName, rootDir);


if( filePathName[strlen(filePathName) -1] != '\\ ' )
{
strcat(filePathName, "\\ ");
}
strcat(filePathName, "* ");
hSearch = FindFirstFile(filePathName, &fd);


//Is directory
if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
&& strcmp(fd.cFileName, ". ") && strcmp(fd.cFileName, ".. ") )
{
strcpy(tmpPath, rootDir);
strcat(tmpPath, fd.cFileName);
FindFileInDir(tmpPath, strRet);
}
else if( strcmp(fd.cFileName, ". ") && strcmp(fd.cFileName, ".. ") )
{
sprintf(fname, "%-50.50s ", fd.cFileName);
strcat(strRet + strRet[strlen(strRet)] , fname);
}
while( !bSearchFinished )
{
if( FindNextFile(hSearch, &fd) )
{
if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
&& strcmp(fd.cFileName, ". ") && strcmp(fd.cFileName, ".. ") )
{
strcpy(tmpPath, rootDir);
strcat(tmpPath, fd.cFileName);
FindFileInDir(tmpPath, strRet);
}
else if( strcmp(fd.cFileName, ". ") && strcmp(fd.cFileName, ".. ") )
{
sprintf(fname, "%-50.50s ", fd.cFileName);
strcat(strRet + strRet[strlen(strRet)] , fname);
}
}
else
{
if( GetLastError() == ERROR_NO_MORE_FILES ) //Normal Finished
{
bSearchFinished = TRUE;
}
else
bSearchFinished = TRUE; //Terminate Search
}
}
FindClose(hSearch);
}

main()
{
char abc[25]= "c:\\TEXTRO ";
char cde[25]= "exe ";

FindFileInDir(abc,cde);

}

热点排行
Bad Request.