//Zipper Tool
function ZipFile()
{
if ( arguments.length == 0 ) {
return;
}
this.open.apply(this, arguments);
};
(function()
{
var fso = new ActiveXObject('Scripting.FileSystemObject');
var shellApp = new ActiveXObject("Shell.Application");
ZipFile.prototype.open = function(name, create, overwrite)
{
if ( create ) {
var zipFile = fso.CreateTextFile(name, !! overwrite, 0);
zipFile.Write('PK\05\06' + new Array(19).join('\0')); // 18 zeros
zipFile.Close();
}
this.name = fso.GetFile(name).Path;
this.file = shellApp.NameSpace(this.name);
};
ZipFile.prototype.flush = function(timeout)
{
timeout = Math.max(Number(timeout) || 0, 100);
WScript.Sleep(timeout);
};
ZipFile.prototype.forEach = function(func)
{
if ( typeof func != 'function' ) {
throw new TypeError();
}
var arcfile = this.file;
var items = arcfile.Items();
for (var e = new Enumerator(items); ! e.atEnd(); e.moveNext()) {
var folderItem = e.item();
func(folderItem, arcfile);
}
};
ZipFile.prototype.forInput = function(input, func)
{
if ( typeof func != 'function' ) {
throw new TypeError();
}
var arcfile = this.file;
if ( typeof input == 'string' ) {
input = [input];
}
for (var i = 0; i < input.length; i++) {
var p = input[i];
if ( ! p ) {
continue;
}
var folderItem = null;
if ( fso.FileExists(p) ) {
folderItem = fso.GetFile(p);
} else if ( fso.FolderExists(p) ) {
folderItem = fso.GetFolder(p);
}
func(folderItem, arcfile);
}
};
})();
// Funktion Speichern für HTML ausführen bei klick auf "speichern" - onclick=packProject();
var fileName = ('test')// später null, hier nur zum test, könnte dann variabel sein
function packProject() {
var zipfile = new ZipFile();
zipfile.open("C:\\Ordner\\" + fileName + ".zip", true, true); //pfad zum zippen + Dateiname aus Variable lesen
zipfile.forInput(
[
"C:\\Pfad\\zumOrdner\\WelcherGezipptWird"
// hier können weitere Folder rein
],
function(folderItem, arcfile)
{
arcfile.CopyHere(folderItem.Path, 0);
WScript.Sleep(500); //500 ms zeit geben, dann erst weitter ausführen
// >> für mich noch wichtig, die zip Suffix zu ändern in .CM5 (könnte ja auch .cab oder sonstiges sein...
setTimeout(function(){
// Projekt Suffix von .zip in .cm5 umbenennen
var renFile = new ActiveXObject("Scripting.FileSystemObject");
renFile.MoveFile("C:\\Ordner\\" + fileName + ".zip", "C:\\Ordner\\" + fileName + ".cm5");
renFile = null;
},500);
});
}