GetUnzip.ds

Note: This code is provided as a sample. It isn't a supported part of the SiteGenesis application.
/**
 * GetUnzip.ds
 * 
 * Unzip a file.
 *
 * @input ZIPFileName    : String  The file name of the .zip file
 * @input SourceDirectory : dw.io.File    The processing directory where the file is located
 * @input sampleLogger  : Object  Sample logger
 * @output UnzipDirectory : dw.io.File    The unzip directory where the extracted import file is located
 * @output ZIPFile  : dw.io.File The .zip file
 * @output sampleLogger  : Object  Sample logger
 * @output sampleError  : Object  Sample error
 */
importPackage(dw.system);
importPackage(dw.io);
importScript("bc_sample:library/impex/libImpExConstants.ds");
// Sample Logging ImportScript
importScript("bc_sample:library/common/libContext.ds");
importScript("bc_sample:library/utility/exception/libsampleException.ds");
importScript("bc_sample:library/utility/logging/libLog.ds");
function execute(pdict : PipelineDictionary) : Number {
 var _context : String = new Context("GetUnzip.ds");
 var _logger : Log = Log.getLogger(pdict);
 
 var sourceDirectory : File = pdict.SourceDirectory;
 var zipFileName : String = pdict.ZIPFileName;
  
 var sourceFile : File = new File(sourceDirectory, zipFileName);
 var targetFile : File = new File(File.TEMP + File.SEPARATOR + 'IMPEX_UNZIP' + File.SEPARATOR + zipFileName);
 var zipFile : File  = new File(sourceDirectory, zipFileName);
 
 var unzipDirectory : File = new File(File.TEMP + File.SEPARATOR + 'IMPEX_UNZIP' + File.SEPARATOR + zipFileName);
 unzipDirectory.mkdirs();
 
 var fileExtension : String = sourceFile.name.substring(sourceFile.name.length-4, sourceFile.name.length);
 
 if (!sourceFile.exists()) {
  _logger.error(_context, "Source file '" + sourceFile.name + "' in path '" + sourceFile.path + "' cannot be found!");
  return PIPELET_ERROR;
 }
 
 // check for file extension .zip
 if ((fileExtension == '.zip') || (fileExtension == '.ZIP')) {
 
  try {
  
   sourceFile.unzip(targetFile);
   pdict.UnzipDirectory = unzipDirectory;
   pdict.ZIPFile = zipFile;
  }
  catch (e) {
  
   var exception : sampleException = new sampleException(_context, "Error occurred calling unzip: ", e);
   _logger.error(_context, "Error occurred calling unzip: " + exception);
   pdict.sampleError = exception; 
  
   return PIPELET_ERROR;
  } 
  
  return PIPELET_NEXT;
 }
 
 _logger.info(_context, "No .zip file :" + zipFile.name); 
 return PIPELET_NEXT;
}