示例#1
0
/*!
 \brief 先清理temp_project中的文件,然后将保存的文件保存在temp_project目录中,然后再将目标目录清理干净,最后将temp_project目录中的文件copy到目标目录中

 \fn CMainWindow::on_actionSave_triggered
*/
void CMainWindow::on_actionSave_triggered()
{
    emit signal_ClearDebug();
    emit signal_ShowMessageDebug(0,QString("开始保存... %1").arg(QDateTime::currentDateTime().toString("yyyy/MM/dd hh:mm:ss.zzz")));
    ///< 清理掉temp_project目录中的文件
    QDir tempDir("temp_project");
    if (tempDir.exists())
    {
        qDebug()<<__func__<<__LINE__<<"有";
        DeletePathFile(QDir::currentPath()+"/temp_project");
    }else
    {
        qDebug()<<__func__<<__LINE__<<"无";
        tempDir.mkdir(QDir::currentPath()+"/temp_project");
    }
//    qDebug()<<__func__<<__LINE__<<__FILE__<<m_pTreeWidget->topLevelItemCount();

    ///< 生成配置文件,生成在temp目录中
    for (int nTreeItemCount = 0; nTreeItemCount < m_pTreeWidget->topLevelItemCount(); ++nTreeItemCount)
    {
        if (m_pTreeWidget->topLevelItem(nTreeItemCount)->type() == CGI_SCADA_DLL_I::TreeItemType_Undefined)
        {
            continue;
        }else
        {
            ((CGI_SCADA_DLL_I*)m_pTreeWidget->topLevelItem(nTreeItemCount))->SaveAction();
        }
    }

    DeletePathFile(m_strProjectPath);///< 清理掉目标目录中的文件

    /// 将temp_project目录中的文件复制到目标目录
    if (!tempDir.exists())
        return ;
    tempDir.setFilter(QDir::Dirs|QDir::Files);
    tempDir.setSorting(QDir::DirsFirst);
    QFileInfoList list = tempDir.entryInfoList();
    int i=0;
    do{
        QFileInfo fileInfo = list.at(i);
        if((fileInfo.fileName()==".")|(fileInfo.fileName()==".."))
        {
            i++;
            continue;
        }
        bool bisDir=fileInfo.isDir();
        if(bisDir)
        {
            qDebug()<<(QString("%1 %2 %3").arg(fileInfo.size(), 10).arg(fileInfo.fileName(),10).arg(fileInfo.path()))<<fileInfo.absoluteFilePath();
        }else{
            qDebug()<<(QString("%1 %2 %3").arg(fileInfo.size(), 10).arg(fileInfo.fileName(),10).arg(fileInfo.path()))<<fileInfo.absoluteFilePath()<<fileInfo.baseName();
            QFile::copy(fileInfo.absoluteFilePath(),QString("%1/%2").arg(m_strProjectPath).arg(fileInfo.fileName()));
        }
        i++;
    }while(i<list.size());
    emit signal_ShowMessageDebug(0,QString("保存完毕"));
}
示例#2
0
void CMainWindow::DeletePathFile(QString strFilePath)
{
    QString strPath = strFilePath;
    qDebug()<<strPath;
    QDir dir(strPath);
    if (!dir.exists())
        return ;
    dir.setFilter(QDir::Dirs|QDir::Files);
    dir.setSorting(QDir::DirsFirst);
    QFileInfoList list = dir.entryInfoList();
    int i=0;
    QString fileName;
    do{
        QFileInfo fileInfo = list.at(i);
        if((fileInfo.fileName()==".")|(fileInfo.fileName()==".."))
        {
            i++;
            continue;
        }
        bool bisDir=fileInfo.isDir();
        if(bisDir)
        {
            qDebug()<<(QString("%1 %2 %3").arg(fileInfo.size(), 10).arg(fileInfo.fileName(),10).arg(fileInfo.path()))<<fileInfo.absoluteFilePath();
            DeletePathFile(fileInfo.filePath());
            dir.rmdir(fileInfo.filePath());
        }else{
            fileName = fileInfo.fileName();
            dir.remove(fileInfo.fileName());
            qDebug()<<(QString("%1 %2 %3").arg(fileInfo.size(), 10).arg(fileInfo.fileName(),10).arg(fileInfo.path()))<<fileInfo.absoluteFilePath();
        }
        i++;
    }while(i<list.size());
}
示例#3
0
/*!
 \brief 解压缩槽函数

 \fn CMainWindow::on_actionExtract_triggered
*/
void CMainWindow::on_actionExtract_triggered()
{
    DeletePathFile("project");
    QDir dir = QDir::current();
    dir.remove("project.tar");
    system("7z.exe x project.tar.gz -y");
    system("7z.exe x project.tar -y");
}
示例#4
0
VOID CEdRptExport::OnEndExporting()
{
	DeletePathFile(m_szPath + "*.*");
	RemoveDirectory(m_szPath);

	m_ZipArc.CloseZip();
	
	// modify file head
	FILE *fp = fopen(m_szExpName, "r+");
	if (fp != NULL)
	{
		fputc('b', fp);
		fputc('s', fp);
	}
	fclose(fp);
}