谢谢

解决方案 »

  1.   

    参考:
    http://www.vckbase.net/document/viewdoc/?id=449
      

  2.   

    BOOL DeleteDirectory(char *DirName)//如删除 DeleteDirectory("c:\\aaa") 
    {
    CFileFind tempFind;
    char tempFileFind[MAX_PATH];
    sprintf(tempFileFind,"%s\\*.*",DirName);
    BOOL IsFinded=(BOOL)tempFind.FindFile(tempFileFind);
    while(IsFinded)
    {
    IsFinded=(BOOL)tempFind.FindNextFile();
    if(!tempFind.IsDots())
    {
    char foundFileName[MAX_PATH];
    strcpy(foundFileName,tempFind.GetFileName().GetBuffer(MAX_PATH));
    if(tempFind.IsDirectory())
    {
    char tempDir[MAX_PATH];
    sprintf(tempDir,"%s\\%s",DirName,foundFileName);
    DeleteDirectory(tempDir);
    }
    else
    {
    char tempFileName[MAX_PATH];
    sprintf(tempFileName,"%s\\%s",DirName,foundFileName);
    DeleteFile(tempFileName);
    }
    }
    }
    tempFind.Close();
    if(!RemoveDirectory(DirName))
    {
    MessageBox(0,"删除目录失败!","警告信息",MB_OK);//比如没有找到文件夹,删除失败,可把此句删除
    return FALSE;
    }
    return TRUE;
    }
    //--------这段代码能得到文件夹下所有的文件名,包含子文件夹,文件名就在tempFileName
      

  3.   

    如果你只是查找当前目录下的文件要简单很多了,代码如下:
    HANDLE hFind;
    WIN32_FIND_DATA dataFind;
    BOOL bMoreFiles=TRUE;
    hFind=FindFirstFile(sPath+"\\*.txt",&dataFind);
    while(hFind!=INVALID_HANDLE_VALUE && bMoreFiles==TRUE)
    {
    if(dataFind.dwFileAttributes==FILE_ATTRIBUTE_ARCHIVE)
    {
    MessageBox(dataFind.cFileName);
    }
    bMoreFiles=FindNextFile(hFind,&dataFind);
    }
    FindClose(hFind);//--------这里是查找sPath下的所有文本文件,对所有的文件名都采用消息框显示出来。结合上面的方法,用上CString::Find()函数就很容易判断文件名是否含log字符串。
    May You Success