KDvoid AssetsManager::update ( KDvoid )
{
    // 1. Urls of package and version should be valid;
    // 2. Package should be a zip file.
    if ( m_sVersionFileUrl.size ( ) == 0 ||
         m_sPackageUrl.size ( ) == 0 ||
         std::string::npos == m_sPackageUrl.find ( ".zip" ) )
    {
        CCLOG ( "no version file url, or no package url, or the package is not a zip file" );
        return;
    }
    
    // Check if there is a new version.
    if ( !checkUpdate ( ) )
	{
		return;
	}
    
    // Is package already downloaded?
	std::string  sDownloadedVersion = CCUserDefault::sharedUserDefault ( )->getStringForKey ( KEY_OF_DOWNLOADED_VERSION );
    if ( sDownloadedVersion != m_sVersion )
    {
        if ( !downLoad ( ) )
		{
			return;
		}
        
        // Record downloaded version.
        CCUserDefault::sharedUserDefault ( )->setStringForKey ( KEY_OF_DOWNLOADED_VERSION, m_sVersion.c_str ( ) );
        CCUserDefault::sharedUserDefault ( )->flush ( );
    }
    
    // Uncompress zip file.
    if ( !uncompress_ ( ) )
	{
		return;
	}
    
    // Record new version code.
    CCUserDefault::sharedUserDefault ( )->setStringForKey ( KEY_OF_VERSION, m_sVersion.c_str ( ) );
    
    // Unrecord downloaded version code.
    CCUserDefault::sharedUserDefault ( )->setStringForKey ( KEY_OF_DOWNLOADED_VERSION, "" );
    
    CCUserDefault::sharedUserDefault ( )->flush ( );
    
    // Set resource search path.
    setSearchPath ( );
    
    // Delete unloaded zip file.
	std::string  sZipfileName = m_sStoragePath + TEMP_PACKAGE_FILE_NAME;
    if ( kdRemove ( sZipfileName.c_str ( ) ) != 0 )
    {
        CCLOG ( "can not remove downloaded zip file" );
    }
}
Example #2
0
void CFtpTransfer::downloadDir(QString sDir, QString sSaveRoot)
{
    if(sSaveRoot=="")
        sSaveRoot=QApplication::applicationDirPath();
    m_listFile.clear();
    m_flagProcessOk=false;
    m_ftp.connectToHost(m_url.host(),m_url.port());
    m_ftp.login(m_url.userName(),m_url.password());
    // m_ftp.cd(sDirPath);
    m_ftp.cd(sDir);
    m_ftp.list();
    int iRe=cTimeOut(5000,m_flagProcessOk);
    m_ftp.close();
    if(iRe!=0)
    {
        qDebug()<<"connect false or dir no data";
        return;
    }

    QDir dir;
    if(!dir.exists(sSaveRoot))
    {
        dir.mkdir(sSaveRoot);
    }

//    if(!dir.exists(sSaveRoot+"/"+sDir))
//    {
//        dir.mkdir(sSaveRoot+"/"+sDir);
//    }

//    QString sSavePath=sSaveRoot+"/"+sDir;


    for(int i=0;i<m_listFile.length();i++)
    {
        QString sFile="/"+sDir+"/"+m_listFile.at(i);
        qDebug()<<"down file : "<<sFile;
        qDebug()<<"sava path: "<<sSaveRoot;
      //  sFile="aa/BRClient/20151130_2";

        downLoad(sFile,sSaveRoot+"/");

    }

}
Example #3
0
void CFtpTransfer::downloadFile(QString sFile, QString sSaveRoot)
{
    downLoad(sFile);
}