zoukankan      html  css  js  c++  java
  • Qt用Zip压缩文件夹的一些坑

    环境:
    QT3.3.8
    vs2005

    QDir dir("/home/Blinux/html");
    if ( !dir.exists() )
    {
    	//目录不存在
    }
    
    QString strZip = ""/home/Blinux/html".zip";
    
    m_pProcess->setWorkingDirectory(dir);    //设置工作空间
    m_pProcess->addArgument(QString("zip"));
    m_pProcess->addArgument(QString("-r"));
    m_pProcess->addArgument(QString("-j"));
    m_pProcess->addArgument(strZip);
    m_pProcess->addArgument( QString("*") );
    
    int nn=0;
    if(m_pProcess->start())
    {
    	//QByteArray arr = m_pProcess->readStdout();	
    	while(m_pProcess->isRunning())
    	{
    		nn++;
    		arr = m_pProcess->readStdout();
    		if(nn>10)
    		{
    			m_pProcess->tryTerminate();
    			m_pProcess->clearArguments();
    			return false;			
    		}
    
    		sleep(100);
    	}
    }
    else
    {
    	//启动失败
    }
    

    在windows系统下运行正常,将/home/Blinux/html压缩为/home/Blinux下的html.zip文件;
    在linux系统下未达到预期效果,在路径/home/Blinux/下并没有生成html.zip文件;


    修改方法:
    将m_pProcess->addArgument( QString("*") ); 改为m_pProcess->addArgument( QString("/home/Blinux/html") );
    也就是说将相对路径“*”,改为绝对路径“/home/Blinux/html”,那么m_pProcess->setWorkingDirectory(dir); 也就没有意义了,可以删除。


    -j 参数的一点说明:

    zip -r -j /home/Blinux/html.zip /home/Blinux/html

    您的资助是我最大的动力!
    金额随意,欢迎来赏!

  • 相关阅读:
    Uva673 Parentheses Balance
    cordforce Educational Codeforces Round 47 补题笔记 <未完>
    cordforce 495 补题 <未完>
    linux 基本命令笔记
    app审核相关
    CATransform3D
    UITableView点击切换状态分析
    iOS大转盘抽奖
    被忽视的控件UIToolbar
    AVPlayerViewController视频播放器
  • 原文地址:https://www.cnblogs.com/Corphish/p/7476165.html
Copyright © 2011-2022 走看看