Имя пользователя:
Пароль:
 

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

Аватара для ganselo

Старожил


Сообщения: 232
Благодарности: 90

Профиль | Сайт | Отправить PM | Цитировать


Цитата DaRiYs:
А как это все организовать в коде? »
Примерно так:
Код: Выделить весь код
#include <windows.h>

void Copy(LPCTSTR szInDirName, LPCTSTR szOutDirName, bool flag = false)
{
    WIN32_FIND_DATA ffd;
    HANDLE hFind;

    TCHAR szFind[MAX_PATH + 1];
    TCHAR szInFileName[MAX_PATH + 1];
    TCHAR szOutFileName[MAX_PATH + 1];

    lstrcpy(szFind, szInDirName);
    lstrcat(szFind, "\\*.*"); //ищем файлы с любым именем и рысширением

    hFind = FindFirstFile(szFind, &ffd);

    do
    {
        //Формируем полный путь (источник)
        lstrcpy(szInFileName, szInDirName);
        lstrcat(szInFileName, "\\");
        lstrcat(szInFileName, ffd.cFileName);

        //Формируем полный путь (результат)
        lstrcpy(szOutFileName, szOutDirName);
        lstrcat(szOutFileName, "\\");
        lstrcat(szOutFileName, ffd.cFileName);

        if(flag) //если flag == true, то копируем и папки
        {
            if(ffd.dwFileAttributes & 0x00000010)
            {
                if(lstrcmp(ffd.cFileName, ".") == 0 ||
                    lstrcmp(ffd.cFileName, "..") == 0) continue;

                CreateDirectory(szOutFileName, NULL);
                Copy(szInFileName, szOutFileName);
            }
        } //иначе пропускаем папки
        else
            if(ffd.dwFileAttributes & 0x00000010) continue;

        CopyFile(szInFileName, szOutFileName, TRUE);
    }
    while(FindNextFile(hFind, &ffd));

    FindClose(hFind);
}

int main()
{
    //В конце пути к папкам не нужно добавлять "\"
    Copy("C:\\1", "C:\\2", true); //если нужно скопировать и поддиректории
    Copy("C:\\1", "C:\\2"); //если нужно скопировать только файлы
}

-------
К величайшему сожалению "история учит нас тому, что она ничему не учит".


Последний раз редактировалось ganselo, 03-09-2009 в 23:58.

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:36, 03-09-2009 | #5