Добавление файлов в ZIP без путей с помощью SharpZipLib
мне нужно объединить 3 файла в 1 zip-файл и сделать его доступным для загрузки для пользователя. Я могу выполнить свое требование, кроме одного: он сжимает файлы во вложенные папки.
например, мои файлы расположены следующим образом:
C:TTCGWebSitesHealthABC.CSV
C:TTCGWebSitesHealthXYZ.CSV
C:TTCGWebSitesHealth3.CSV
но в zip-файле он zip-файлы в папке, используя "TTCGWebSitesHealth" в качестве пути. Пожалуйста, см. Прикрепите файл.
Я не хочу, чтобы папки в путь. Я просто хочу 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("~" + @"3.csv"));
//commit the update once we are done
z.CommitUpdate();
//close the file
z.Close();
3 ответов
на основе FAQ, вы должны удалить путь к папке вручную:
как я могу создать zip-файл, без папок?
удалите часть пути файла, используемого для создания ZipEntry перед добавлением в ZipOutputStream
ZipEntry entry = new ZipEntry(Path.GetFileName(fullPath));
FAQ можно найти здесь.
похоже, это ограничение библиотеки. Надеюсь, это поможет!
Если у вас есть файлы в FileSystemInfo, вы можете использовать:z.Add(file.FullName, Path.GetFileName(file.FullName));
Это добавит ваши файлы в корневой каталог вашего zip.