Подтвердить что ты не робот

Создание Zip файла с помощью SharpZipLib

Мне нужно объединить 3 файла в 1 zip файл и сделать его доступным для загрузки для пользователя. Я могу выполнить свое требование, кроме одного: он застегивает файлы в подпапки.

Например, мои файлы расположены следующим образом:

C:\TTCG\WebSites\Health\ABC.CSV
C:\TTCG\WebSites\Health\XYZ.CSV
C:\TTCG\WebSites\Health\123.CSV

Но в zip файле он застегивает файлы в папке с помощью "TTCG\WebSites\Health \" в качестве пути. См. Прикрепленный файл.

Example

Мне не нужны папки в пути. Я просто хочу 3 файла в zip файле без папок. Как я могу это достичь?

Мои коды для генерации zip файла приведены ниже:

ZipFile z = ZipFile.Create(Server.MapPath("~" + @"\Accident.zip"));

//initialize the file so that it can accept updates
z.BeginUpdate();

//add the file to the zip file        
z.Add(Server.MapPath("~" + @"\ABC.csv"));
z.Add(Server.MapPath("~" + @"\XYZ.csv"));
z.Add(Server.MapPath("~" + @"\123.csv"));        

//commit the update once we are done
z.CommitUpdate();
//close the file
z.Close();
4b9b3361

Ответ 1

В соответствии с часто задаваемыми вопросами вы должны вручную удалить путь к папке:

Как создать Zip файл без папок?

Удалить часть пути имени файла, используемого для создания ZipEntry прежде чем он будет добавлен в ZipOutputStream

ZipEntry entry = new ZipEntry(Path.GetFileName(fullPath));

Часто задаваемые вопросы можно найти здесь.

Кажется, это ограничение библиотеки. Надеюсь, это поможет!

Ответ 2

Если у вас есть файлы в FileSystemInfo, вы можете использовать: z.Add(file.FullName, Path.GetFileName(file.FullName));

Это добавит ваши файлы в корневой каталог вашего почтового индекса.

Ответ 3

z.Add(pathToFile, pathInZipFile);