2013-11-15 3 views
1

Я не уверен, что это пробел в моем понимании. Мне нужно застегнуть папку, которая находится на сервере в той же сети. Предположим, у меня есть папка WebSite на диске D машины ABC в домене XYZ (та же сеть, что и моя машина). Я использую следующий код, чтобы пронестись егоСжатие папки по сетевому пути с использованием DotNetZip

 using (ZipFile myZip = new ZipFile()) 
     { 
      myZip.AddSelectedFiles("*.*", @"\\ABC.XYZ.com\d$\WebSite\", true); 

      myZip.Save(@"\\ABC.XYZ.com\d$\Test.zip"); 
     } 

Используя этот код я получаю архив в диске D. азбуки сервера, но, структура почтового индекса будет выглядеть следующим образом.

Test.zip -> ABC.XYZ.com -> d $ -> Сайт

Есть ли какой-нибудь другой способ, чтобы получить файл Zip как test.zip -> Сайт, в то время как на сетевой путь.

+0

возможно дубликат http://stackoverflow.com/questions/4125607/dotnetzip-add-files-without-creating-folders –

+0

Неа, это не дубликат. Речь идет не о хранении файлов без пути, а о хранении файлов в другом корневом каталоге ZIP, если я правильно понял. – elgonzo

+0

Я пробовал AddFile() перечислять каждый файл .. но это не сработало для меня .. как внутри папки веб-сайта у меня есть подпапки, которые содержат одинаковые имена файлов .. с AddFile он бы выбросил ошибку словаря ... – Niranjan

ответ

3

Используйте ZipFile.AddDirectory метод:

using (ZipFile myZip = new ZipFile()) 
{ 
    myZip.AddDirectory(@"\\ABC.XYZ.com\d$\WebSite\", "WebSite"); 
    myZip.Save(@"\\ABC.XYZ.com\d$\Test.zip"); 
} 
+0

it работал .. :) спасибо кучу !! :) – Niranjan

Смежные вопросы