File indexing completed on 2025-03-16 12:46:48
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 }