Показать сообщение отдельно

  #5  
Старый 15.11.2009, 07:53
draliokero
Познающий
Регистрация: 14.03.2009
Сообщений: 86
Провел на форуме:
385811

Репутация: 12
По умолчанию

Помогите разобраться, FindFirstFile(mask, &findFileData)
mask не передается с типами какойто косяк

Код:
#include <windows.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>

TCHAR * filemask[] = { ".---", ".@@@", ".$a", ".$db", ".$sa", ".___", "._dd",
    "._detmp", "._mp", ".aps", ".bac", ".bak", ".bbs", ".bup",
    ".cdr_", ".chk", ".cpy", ".da0", ".diz", ".dmp", ".err",
    ".fic", ".fnd", ".ftg", ".fts", ".gid", ".ilk", ".ion",
    ".lo_", ".mch", ".MS", ".nav", ".ncb", ".nhc", ".nu3",
    ".nu4", ".old", ".pch", ".prv", ".sdi", ".sfap0", ".sfk",
    ".shd", ".sik", ".spc", ".sud", ".swr", ".syd", ".tds",
    ".temp", ".tmp", ".wbk", ".wc", ".wlg", ".wpx", ".xlg",
".xlk" };


int SearchFiles(TCHAR *buffer, TCHAR *mask)
{
        HANDLE hFile;
        WIN32_FIND_DATA findFileData;
        TCHAR temp[MAX_PATH];
        
        SetCurrentDirectory(buffer);
        
        if((hFile=FindFirstFile(mask, &findFileData))==INVALID_HANDLE_VALUE)
        {
                printf("Invalid file handle (%d)\n", GetLastError());
                return -2;
        }
        else 
        {       
                do
                {
                        if(!strcmp(findFileData.cFileName, TEXT("."))||!strcmp(findFileData.cFileName, TEXT("..")))     
                        {
                                continue;
                        }
                        
                        if(findFileData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
                        {                               
                                strcpy(temp, buffer);
                                strcat(buffer, "\\");
                                strcat(buffer, findFileData.cFileName);
                                
                                SearchFiles(buffer);
                                strcpy(buffer,temp);
                                continue;
                        }
                        printf("File name is %s\n", findFileData.cFileName);
                }
                while(FindNextFile(hFile, &findFileData)!=0);
        }
        FindClose(hFile);
        return true;
}
 
int main(int argc, TCHAR* argv[])
{
        
        TCHAR buffer[MAX_PATH];
        GetCurrentDirectory(sizeof(buffer), buffer);
    int arrsize = sizeof(filemask)/sizeof(int);
    
    for(int i=0; i<arrsize; i++){
       SearchFiles(buffer, filemask[i]);
    }
    system("pause");
    return 0;
}

Последний раз редактировалось draliokero; 15.11.2009 в 14:30..
 
Ответить с цитированием