Кто-нибудь знает, как добавить папку и ее содержимое с учетом ее каталога в zip-файл с помощью утилит Zip?

#winapi #visual-c #directory #zip

#winapi #visual-c #каталог #zip

Вопрос:

Я использую утилиты Zip и создаю zip-файл. Я пытаюсь добавить папку и ее содержимое с учетом ее каталога в zip-файл, но ни функции ZipAddFolder(), ни функции ZipAdd() ничего не добавляют в zip-файл. Я могу создать новую папку в zip-файле с помощью ZipAddFolder(), но это не позволяет мне добавить нужную папку с ее содержимым. Он даже не добавляет какие-либо существующие файлы для меня. Мой код показан ниже:

 #include <windows.h>
#include <stdlib.h>
#include <string.h>
#include <tchar.h>
#include <stdio.h>
#include "zip.h"

TCHAR zipFilename[] = TEXT("C:\Users\ttyler\Desktop\Software\Folder2\test3.zip");

TCHAR directoryPath[] = TEXT("C:\Users\ttyler\Desktop\Software\Folder2\");
TCHAR entryName[] = TEXT("NewFolder");

HZIP hz = CreateZip(zipFilename, 0);
if (hz == 0) {
// error...
}

//BOOL c = CopyFile(TEXT("C:\Users\ttyler\Desktop\Software\Folder2\test3.zip"), TEXT("C:\Users\ttyler\Desktop\Software\Folder2\test.zip\"), 0);             // I even tried copying a file in using CopyFile but this didn't work either
            
//ZRESULT res = ZipAddFolder(hz, TEXT("C:\Users\ttyler\Desktop\Software\Folder2\"));   // This does not add anything to the zip file
ZRESULT res = ZipAddFolder(hz, entryName);        // This creates a new folder in the zip file named "NewFolder"

//ZRESULT res = ZipAdd(hz, entryName, TEXT("C:\Users\ttyler\Desktop\Software\Folder2\test1.zip"));  //This does not add anything to the folder

if (res != ZR_OK) {
 // error...
}

CloseZip(hz);
 

Кто-нибудь смог успешно добавить папку и ее содержимое в zip-файл с помощью утилит Zip или любого файла из другого места в zip-файл, если на то пошло? Есть ли другие лучшие способы сделать это — создать zip-файл и добавить в него папку и ее содержимое или просто заархивировать папку? Я уже пробовал XZip и libzip — XZip не работал для меня и для libzip, я не мог заставить все установки работать должным образом. Есть ли какие-либо другие простые библиотеки заголовков, которые я могу просто добавить для этого?

Комментарии:

1. Что такое утилиты Zip?

2. @RetiredNinja codeproject.com/Articles/7530 /…

3. Ах, не собираюсь регистрироваться, чтобы загрузить его. Удачи!

4. @RetiredNinja Вам не нужно регистрироваться, чтобы загрузить его, это бесплатно. Просто нажмите «Загрузить исходные файлы».

5. Который перенаправляет вас на страницу, требующую входа в систему. пожатие плечами