user2127447
user2127447

Reputation: 43

ZipEntry script zipping a directory, and 14 out of 15 files are blank

I modified a ZipEntry script to zip 15 Excel files. Now I'm no developer, so I did not use loops and basically repeated variables over and over, so the code is ugly and inefficient. That aside, I can only open the zip using 7-Zip, and inside is a directory. Inside that directory are the 15 .xlsx files. 14 of the 15 files are blank... only the last one is not.

Problems:

1) Directory inside the .zip - how can I remove it and just let it zip the 15 files directly?

2) The first 14 out of the 15 files are blank/0 KB. What is causing this?

Here is the code:

var file_name_xlsx1 = getSystemDefault("RES_REPORTS_DIR")'EBAResolution_xxxxx_' + 'Z_01_00'+ '_' + DATE_STRING + '.xlsx';
var file_name_xlsx2 = getSystemDefault("RES_REPORTS_DIR")'EBAResolution_xxxxx_' + 'Z_02_00'+ '_' + DATE_STRING + '.xlsx';
var file_name_xlsx3 = getSystemDefault("RES_REPORTS_DIR")'EBAResolution_xxxxx_' + 'Z_03_00'+ '_' + DATE_STRING + '.xlsx';
var file_name_xlsx4 = getSystemDefault("RES_REPORTS_DIR")'EBAResolution_xxxxx_' + 'Z_04_00'+ '_' + DATE_STRING + '.xlsx';
var file_name_xlsx5 = getSystemDefault("RES_REPORTS_DIR")'EBAResolution_xxxxx_' + 'Z_05_01'+ '_' + DATE_STRING + '.xlsx';
var file_name_xlsx6 = getSystemDefault("RES_REPORTS_DIR")'EBAResolution_xxxxx_' + 'Z_05_02'+ '_' + DATE_STRING +  '.xlsx';
var file_name_xlsx7 = getSystemDefault("RES_REPORTS_DIR")'EBAResolution_xxxxx_' + 'Z_06_00'+ '_' + DATE_STRING + '.xlsx';
var file_name_xlsx8 = getSystemDefault("RES_REPORTS_DIR")'EBAResolution_xxxxx_' + 'Z_07_01'+ '_' + DATE_STRING + '.xlsx';
var file_name_xlsx9 = getSystemDefault("RES_REPORTS_DIR")'EBAResolution_xxxxx_' + 'Z_07_02'+ '_' + DATE_STRING + '.xlsx';
var file_name_xlsx10 = getSystemDefault("RES_REPORTS_DIR")'EBAResolution_xxxxx_' + 'Z_07_03'+ '_' + DATE_STRING + '.xlsx';
var file_name_xlsx11 = getSystemDefault("RES_REPORTS_DIR")'EBAResolution_xxxxx_' + 'Z_07_04'+ '_' + DATE_STRING + '.xlsx';
var file_name_xlsx12 = getSystemDefault("RES_REPORTS_DIR")'EBAResolution_xxxxx_' + 'Z_08_00'+ '_' + DATE_STRING +  '.xlsx';
var file_name_xlsx13 = getSystemDefault("RES_REPORTS_DIR")'EBAResolution_xxxxx_' + 'Z_09_00'+ '_' + DATE_STRING + '.xlsx';
var file_name_xlsx14 = getSystemDefault("RES_REPORTS_DIR")'EBAResolution_xxxxx_' + 'Z_10_01'+ '_' + DATE_STRING + '.xlsx';
var file_name_xlsx15 = getSystemDefault("RES_REPORTS_DIR")'EBAResolution_xxxxx_' + 'Z_10_02'+ '_' + DATE_STRING + '.xlsx';
var file_name_zip = getSystemDefault("RES_REPORTS_DIR")'EBAResolution_xxxxx' + '_' + DATE_STRING + '.zip';

var fileOS = new("java.io.FileOutputStream", file_name_zip);
var zipOS = new("java.util.zip.ZipOutputStream", fileOS);
zipOS.setLevel(9);
var zipEntry1 = new("java.util.zip.ZipEntry",file_name_xlsx1 );
zipOS.putNextEntry(zipEntry1);
var zipEntry2 = new("java.util.zip.ZipEntry",file_name_xlsx2 );
zipOS.putNextEntry(zipEntry2);
var zipEntry3 = new("java.util.zip.ZipEntry",file_name_xlsx3 );
zipOS.putNextEntry(zipEntry3);
var zipEntry4 = new("java.util.zip.ZipEntry",file_name_xlsx4 );
zipOS.putNextEntry(zipEntry4);
var zipEntry5 = new("java.util.zip.ZipEntry",file_name_xlsx5 );
zipOS.putNextEntry(zipEntry5);
var zipEntry6 = new("java.util.zip.ZipEntry",file_name_xlsx6 );
zipOS.putNextEntry(zipEntry6);
var zipEntry7 = new("java.util.zip.ZipEntry",file_name_xlsx7 );
zipOS.putNextEntry(zipEntry7);
var zipEntry8 = new("java.util.zip.ZipEntry",file_name_xlsx8 );
zipOS.putNextEntry(zipEntry8);
var zipEntry9 = new("java.util.zip.ZipEntry",file_name_xlsx9 );
zipOS.putNextEntry(zipEntry9);
var zipEntry10 = new("java.util.zip.ZipEntry",file_name_xlsx10 );
zipOS.putNextEntry(zipEntry10);
var zipEntry11 = new("java.util.zip.ZipEntry",file_name_xlsx11 );
zipOS.putNextEntry(zipEntry11);
var zipEntry12 = new("java.util.zip.ZipEntry",file_name_xlsx12 );
zipOS.putNextEntry(zipEntry12);
var zipEntry13 = new("java.util.zip.ZipEntry",file_name_xlsx13 );
zipOS.putNextEntry(zipEntry13);
var zipEntry14 = new("java.util.zip.ZipEntry",file_name_xlsx14 );
zipOS.putNextEntry(zipEntry14);
var zipEntry15 = new("java.util.zip.ZipEntry",file_name_xlsx15 );
zipOS.putNextEntry(zipEntry15);
var fileIS1 = new("java.io.FileInputStream", file_name_xlsx1);
var fileIS2 = new("java.io.FileInputStream", file_name_xlsx2);
var fileIS3 = new("java.io.FileInputStream", file_name_xlsx3);
var fileIS4 = new("java.io.FileInputStream", file_name_xlsx4);
var fileIS5 = new("java.io.FileInputStream", file_name_xlsx5);
var fileIS6 = new("java.io.FileInputStream", file_name_xlsx6);
var fileIS7 = new("java.io.FileInputStream", file_name_xlsx7);
var fileIS8 = new("java.io.FileInputStream", file_name_xlsx8);
var fileIS9 = new("java.io.FileInputStream", file_name_xlsx9);
var fileIS10 = new("java.io.FileInputStream", file_name_xlsx10);
var fileIS11 = new("java.io.FileInputStream", file_name_xlsx11);
var fileIS12 = new("java.io.FileInputStream", file_name_xlsx12);
var fileIS13 = new("java.io.FileInputStream", file_name_xlsx13);
var fileIS14 = new("java.io.FileInputStream", file_name_xlsx14);
var fileIS15 = new("java.io.FileInputStream", file_name_xlsx15);
var byteArray1 = class("axiomsl.util.basic.GenericClassUtils").readFileIntoByteArray(fileIS1, true);
var byteArray2 = class("axiomsl.util.basic.GenericClassUtils").readFileIntoByteArray(fileIS2, true);
var byteArray3 = class("axiomsl.util.basic.GenericClassUtils").readFileIntoByteArray(fileIS3, true);
var byteArray4 = class("axiomsl.util.basic.GenericClassUtils").readFileIntoByteArray(fileIS4, true);
var byteArray5 = class("axiomsl.util.basic.GenericClassUtils").readFileIntoByteArray(fileIS5, true);
var byteArray6 = class("axiomsl.util.basic.GenericClassUtils").readFileIntoByteArray(fileIS6, true);
var byteArray7 = class("axiomsl.util.basic.GenericClassUtils").readFileIntoByteArray(fileIS7, true);
var byteArray8 = class("axiomsl.util.basic.GenericClassUtils").readFileIntoByteArray(fileIS8, true);
var byteArray9 = class("axiomsl.util.basic.GenericClassUtils").readFileIntoByteArray(fileIS9, true);
var byteArray10 = class("axiomsl.util.basic.GenericClassUtils").readFileIntoByteArray(fileIS10, true);
var byteArray11 = class("axiomsl.util.basic.GenericClassUtils").readFileIntoByteArray(fileIS11, true);
var byteArray12 = class("axiomsl.util.basic.GenericClassUtils").readFileIntoByteArray(fileIS12, true);
var byteArray13 = class("axiomsl.util.basic.GenericClassUtils").readFileIntoByteArray(fileIS13, true);
var byteArray14 = class("axiomsl.util.basic.GenericClassUtils").readFileIntoByteArray(fileIS14, true);
var byteArray15 = class("axiomsl.util.basic.GenericClassUtils").readFileIntoByteArray(fileIS15, true);
zipOS.write(byteArray1, 0, byteArray1.size());
fileIS1.close();
zipOS.write(byteArray2, 0, byteArray2.size());
fileIS2.close();
zipOS.write(byteArray3, 0, byteArray3.size());
fileIS3.close();
zipOS.write(byteArray4, 0, byteArray4.size());
fileIS4.close();
zipOS.write(byteArray5, 0, byteArray5.size());
fileIS5.close();
zipOS.write(byteArray6, 0, byteArray6.size());
fileIS6.close();
zipOS.write(byteArray7, 0, byteArray7.size());
fileIS7.close();
zipOS.write(byteArray8, 0, byteArray8.size());
fileIS8.close();
zipOS.write(byteArray9, 0, byteArray9.size());
fileIS9.close();
zipOS.write(byteArray10, 0, byteArray10.size());
fileIS10.close();
zipOS.write(byteArray11, 0, byteArray11.size());
fileIS11.close();
zipOS.write(byteArray12, 0, byteArray12.size());
fileIS12.close();
zipOS.write(byteArray13, 0, byteArray13.size());
fileIS13.close();
zipOS.write(byteArray14, 0, byteArray14.size());
fileIS14.close();
zipOS.write(byteArray15, 0, byteArray15.size());
fileIS15.close();
zipOS.closeEntry();
zipOS.close();

'getSystemDefault("") is an application-specific function used to retrieve a path on the app server where the files are located. It is this path that is ending up inside the generated .zip, rendering it invalid by Windows Explorer means. Any help would be much appreciated.

Upvotes: 0

Views: 42

Answers (1)

Maurice Perry
Maurice Perry

Reputation: 9650

You must put the first entry, then the first file's content, the second entry, the second file contents, etc...

var zipEntry1 = new("java.util.zip.ZipEntry",file_name_xlsx1 );
zipOS.putNextEntry(zipEntry1);
var fileIS1 = new("java.io.FileInputStream", file_name_xlsx1);
var byteArray1 = class("axiomsl.util.basic.GenericClassUtils").readFileIntoByteArray(fileIS1, true);
zipOS.write(byteArray1, 0, byteArray1.size());
fileIS1.close();

var zipEntry2 = new("java.util.zip.ZipEntry",file_name_xlsx2 );
zipOS.putNextEntry(zipEntry2);
var fileIS2 = new("java.io.FileInputStream", file_name_xlsx2);
var byteArray2 = class("axiomsl.util.basic.GenericClassUtils").readFileIntoByteArray(fileIS2, true);
zipOS.write(byteArray2, 0, byteArray2.size());
fileIS2.close();
...

etc...

Upvotes: 2

Related Questions