ZipArch::ZipArch( ArkWidget *_gui, const QString & _fileName ) : Arch( _gui, _fileName ) { m_archiver_program = "zip"; m_unarchiver_program = "unzip"; verifyCompressUtilityIsAvailable( m_archiver_program ); verifyUncompressUtilityIsAvailable( m_unarchiver_program ); m_headerString = "----"; m_repairYear = 9; m_fixMonth = 7; m_fixDay = 8; m_fixTime = 10; m_dateCol = 5; m_numCols = 7; m_archCols.append( new ArchColumns( 1, QRegExp( "[0-9]+" ) ) ); m_archCols.append( new ArchColumns( 2, QRegExp( "[^\\s]+" ) ) ); m_archCols.append( new ArchColumns( 3, QRegExp( "[0-9]+" ) ) ); m_archCols.append( new ArchColumns( 4, QRegExp( "[0-9.]+%" ) ) ); m_archCols.append( new ArchColumns( 7, QRegExp( "[01][0-9]" ), 2 ) ); m_archCols.append( new ArchColumns( 8, QRegExp( "[0-3][0-9]" ), 2 ) ); m_archCols.append( new ArchColumns( 9, QRegExp( "[0-9][0-9]" ), 2 ) ); m_archCols.append( new ArchColumns( 10, QRegExp( "[0-9:]+" ), 6 ) ); m_archCols.append( new ArchColumns( 6, QRegExp( "[a-fA-F0-9]+ {2}" ) ) ); m_archCols.append( new ArchColumns( 0, QRegExp( "[^\\n]+" ), 4096 ) ); }
SevenZipArch::SevenZipArch( ArkWidget *gui, const TQString &filename ) : Arch( gui, filename ), m_nameColumnPos( -1 ) { // Check if 7z is available bool have_7z = !TDEGlobal::dirs()->findExe( "7z" ).isNull(); // Check if 7za is available bool have_7za = !TDEGlobal::dirs()->findExe( "7za" ).isNull(); if ( have_7z ) m_archiver_program = m_unarchiver_program = "7z"; // Use 7z else if ( have_7za ) m_archiver_program = m_unarchiver_program = "7za"; // Try 7za else m_archiver_program = m_unarchiver_program = "7zr"; verifyCompressUtilityIsAvailable( m_archiver_program ); verifyUncompressUtilityIsAvailable( m_unarchiver_program ); m_headerString = "------------------"; m_repairYear = 5; m_fixMonth = 6; m_fixDay = 7; m_fixTime = 8; m_dateCol = 3; m_numCols = 5; m_archCols.append( new ArchColumns( 5, TQRegExp( "[0-2][0-9][0-9][0-9]" ), 4 ) ); // Year m_archCols.append( new ArchColumns( 6, TQRegExp( "[01][0-9]" ), 2 ) ); // Month m_archCols.append( new ArchColumns( 7, TQRegExp( "[0-3][0-9]" ), 2 ) ); // Day m_archCols.append( new ArchColumns( 8, TQRegExp( "[0-9:]+" ), 8 ) ); // Time m_archCols.append( new ArchColumns( 4, TQRegExp( "[^\\s]+" ) ) ); // Attributes m_archCols.append( new ArchColumns( 1, TQRegExp( "[0-9]+" ) ) ); // Size m_archCols.append( new ArchColumns( 2, TQRegExp( "[0-9]+" ), 64, true ) ); // Compressed Size }
LhaArch::LhaArch( ArkWidget *_gui, const QString & _fileName ) : Arch( _gui, _fileName ) { m_archiver_program = "lha"; verifyCompressUtilityIsAvailable( m_archiver_program ); m_headerString = "----"; }
ZooArch::ZooArch( ArkWidget *gui, const QString & fileName ) : Arch( gui, fileName ) { m_archiver_program = m_unarchiver_program = "zoo"; verifyCompressUtilityIsAvailable( m_archiver_program ); verifyUncompressUtilityIsAvailable( m_unarchiver_program ); m_headerString = "----"; }
TarArch::TarArch( ArkWidget *_gui, const QString & _filename, const QString & _openAsMimeType) : Arch( _gui, _filename), m_tmpDir( 0 ), createTmpInProgress(false), updateInProgress(false), deleteInProgress(false), fd(0), m_pTmpProc( 0 ), m_pTmpProc2( 0 ), failed( false ), m_dotslash( false ), m_listingThread( 0 ) { m_filesToAdd = m_filesToRemove = QStringList(); m_archiver_program = m_unarchiver_program = ArkSettings::tarExe(); verifyCompressUtilityIsAvailable( m_archiver_program ); verifyUncompressUtilityIsAvailable( m_unarchiver_program ); m_fileMimeType = _openAsMimeType; if ( m_fileMimeType.isNull() ) m_fileMimeType = KMimeType::findByPath( _filename )->name(); kdDebug(1601) << "TarArch::TarArch: mimetype is " << m_fileMimeType << endl; if ( m_fileMimeType == "application/x-tbz2" ) { // ark treats .tar.bz2 as x-tbz, instead of duplicating the mimetype // let's just alias it to the one we already handle. m_fileMimeType = "application/x-tbz"; } if ( m_fileMimeType == "application/x-tar" ) { compressed = false; } else { compressed = true; m_tmpDir = new KTempDir( _gui->tmpDir() + QString::fromLatin1( "temp_tar" ) ); m_tmpDir->setAutoDelete( true ); m_tmpDir->qDir()->cd( m_tmpDir->name() ); // build the temp file name KTempFile *pTempFile = new KTempFile( m_tmpDir->name(), QString::fromLatin1(".tar") ); tmpfile = pTempFile->name(); delete pTempFile; kdDebug(1601) << "Tmpfile will be " << tmpfile << "\n" << endl; } }