Показать сообщение отдельно
Старый 14.10.2009, 15:48   #9  
3oppo is offline
3oppo
Участник
Аватар для 3oppo
 
222 / 32 (2) +++
Регистрация: 30.06.2005
Вот что получилось:

X++:
static boolean copyDir(str _sDirFrom, str _sDirTo, boolean _bAllIncluded = true, str _sFilter = '*.*')
{
    str         sSeekPath , sS;
    container   con;
    int         handl;
    int         iE;
    FileName    FileName;
    ;

    if (!WinApi::folderExists( _sDirFrom ))
    {
        info (strfmt ('Директория %1 не существует', _sDirFrom));
        return false;
    }

    //fileCreateAllDir(_sDirTo);

    sSeekPath           +=  _sDirFrom + '\\' + _sFilter;
    [handl, FileName]   =   WinApi::findFirstFile( sSeekPath );

    while (FileName)
    {
        if ( FileName == '.' || FileName == '..')
        {
            FileName    = winapi::findNextFile(handl);
            continue;
        }

        if(_bAllIncluded && WinApi::pathExists(_sDirFrom + '\\' + FileName ) )  // this is folder
        {
            Glob::copyDir(_sDirFrom + '\\' + FileName, _sDirTo + '\\' + FileName, _bAllIncluded, _sFilter); // call itself
        }


        iE      = WinApi::copyFile( _sDirFrom + '\\' + FileName,
                                    _sDirTo   + '\\' + FileName);
        // iE error processing if need

        FileName= winapi::findNextFile(handl);
    }

    return false;

}

Последний раз редактировалось 3oppo; 14.10.2009 в 15:59.
За это сообщение автора поблагодарили: AlGol (1).