создать zip-файл с помощью Thunderbird API

Я пытаюсь создать zip-файл, используя следующий код... У меня есть папка типа "D:\smad". у меня там 2 файла. и я хочу создать zip-папку с именем «smad.zip». но я нашел код для «Добавления файла в Zip-архив».. здесь я делаю так

 var file = Components.classes["@mozilla.org/file/directory_service;1"].
       getService(Components.interfaces.nsIProperties).
       get("AChrom", Components.interfaces.nsIFile);

       file.initWithPath(file.path+"\\smad.zip");

 var file11 = Components.classes["@mozilla.org/file/directory_service;1"].
       getService(Components.interfaces.nsIProperties).
       get("AChrom", Components.interfaces.nsIFile);

       file11.initWithPath(file.path+"\\home.txt");


var zipWriter = Components.Constructor("@mozilla.org/zipwriter;1", "nsIZipWriter");
var zipW = new zipWriter();

zipW.open(file, PR_RDWR | PR_CREATE_FILE | PR_TRUNCATE);
zipW.addEntryFile(file11.path, Components.interfaces.nsIZipWriter.COMPRESSION_DEFAULT, file11, false);
zipW.close();

Использование вышеуказанного кода zip-файла не создается ... пожалуйста, помогите мне ... что не так с этим кодом ... А также есть ли другой способ создать zip-папку с помощью javascript. Заранее спасибо


person madas    schedule 04.06.2013    source источник


Ответы (1)


Я получил решение для вышеуказанного вопроса....

    var file = Components.classes["@mozilla.org/file/directory_service;1"].
           getService(Components.interfaces.nsIProperties).
           get("AChrom", Components.interfaces.nsIFile);

           file.initWithPath(file.path+"\\smad.zip");


     var filenew = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("AChrom", Components.interfaces.nsIFile);

           filenew.initWithPath(filenew.path+"\\home.txt"); 


    const PR_RDONLY      = 0x01;
    const PR_WRONLY      = 0x02;
    const PR_RDWR        = 0x04;
    const PR_CREATE_FILE = 0x08;
    const PR_APPEND      = 0x10;
    const PR_TRUNCATE    = 0x20;
    const PR_SYNC        = 0x40;
   const PR_EXCL        = 0x80;
    var zipWriter = Components.Constructor("@mozilla.org/zipwriter;1", "nsIZipWriter");
    var zipW = new zipWriter();

zipW.open(file, PR_RDWR | PR_CREATE_FILE | PR_TRUNCATE);
zipW.addEntryFile("home.txt", Components.interfaces.nsIZipWriter.COMPRESSION_DEFAULT, filenew, false);
zipW.close();
person madas    schedule 23.08.2013