C # - DotNetZip - Создать новую папку или файл в архиве - PullRequest
0 голосов
/ 14 октября 2018

Я работаю над проектом, который создает сжатый zip-файл, а затем добавляет в него несколько новых файлов и папок.Я некоторое время искал в интернете и не могу найти решение.Я использую .NET Framework 4.7.1. в Visual Studio 2017 .

Вот что я пробовал:

private void CreateFile(string saveDirectory)
{
    using (ZipFile zip = new ZipFile())
    {
        zip.Password = "Some Password";
        zip.Encryption = EncryptionAlgorithm.WinZipAes256;
        zip.Save(saveDirectory);
    }
}

private void ConfigureFile(string loadDirectory)
{
    using (ZipFile zip = ZipFile.Read(loadDirectory))
    {
        zip.AddDirectory("Folder 1");
        zip.AddDirectory("Folder 2");
        zip.AddDirectory("Folder 3");
        zip.AddFile("File 1");
        zip.AddFile("File 2");
    }
}

Ноон ищет в каталоге проекта этот файл и выдает ошибку Not Found.Я также пытался создать папку или файл в каком-то месте на жестком диске, а затем поместить его в zip-файл, но есть ли способ создать файл или папку прямо в zip-файл без?

1 Ответ

0 голосов
/ 14 октября 2018

Да, вы можете создать ZipEntry, который не зависит от существующего соответствующего пути или имени файла, вы можете предоставить содержимое самостоятельно.Например:

public void ConfigureFile(string loadDirectory)
{
    using (ZipFile zip = ZipFile.Read(loadDirectory))
    {
        zip.AddEntry(@"Folder1\Test.txt", new byte[] { 1, 2, 3 });
        zip.Save();
    }
}
...