File indexing completed on 2024-04-28 03:52:32

0001 /*  This file is part of the KDE project
0002 
0003     SPDX-FileCopyrightText: 2013 Maarten De Meyer <de.meyer.maarten@gmail.com>
0004 
0005     SPDX-License-Identifier: BSD-2-Clause
0006 */
0007 
0008 /*
0009  * TarLocalFiles
0010  * This example shows how to add local files and directories to a KArchive
0011  *
0012  * api: addLocalFile(fileName, destName)
0013  * api: addLocalDirectory(dirName, destName)
0014  *
0015  * Usage: ./tarlocalfiles <file-1> <file-n>
0016  */
0017 
0018 #include <QCoreApplication>
0019 #include <QDir>
0020 #include <QFileInfo>
0021 
0022 #include <ktar.h>
0023 
0024 int main(int argc, char *argv[])
0025 {
0026     QCoreApplication app(argc, argv);
0027     QStringList files(app.arguments());
0028 
0029     // Create or open an archive
0030     KTar archive(QStringLiteral("myFiles.tar.gz"));
0031 
0032     // Prepare the archive for writing.
0033     if (!archive.open(QIODevice::WriteOnly)) {
0034         // Failed to open file.
0035         return 1;
0036     }
0037 
0038     if (files.size() <= 1) {
0039         // No files given.
0040         qWarning("Usage: ./tarlocalfiles <file>");
0041         return 1;
0042     }
0043 
0044     for (int i = 1; i < files.size(); ++i) {
0045         QFileInfo localFileOrDir(files.at(i));
0046 
0047         if (localFileOrDir.isFile()) {
0048             QString name = localFileOrDir.fileName();
0049             archive.addLocalFile(name, name);
0050         } else if (localFileOrDir.isDir()) {
0051             QString name = QDir(files.at(i)).dirName();
0052             // Add this folder and all its contents
0053             archive.addLocalDirectory(name, name);
0054         }
0055     }
0056 
0057     archive.close();
0058     return 0;
0059 }