Java Code Examples for net.lingala.zip4j.progress.ProgressMonitor#setState()

The following examples show how to use net.lingala.zip4j.progress.ProgressMonitor#setState() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: CrcUtil.java    From zip4j with Apache License 2.0 5 votes vote down vote up
public static long computeFileCrc(File inputFile, ProgressMonitor progressMonitor) throws IOException {

    if (inputFile == null || !inputFile.exists() || !inputFile.canRead()) {
      throw new ZipException("input file is null or does not exist or cannot read. " +
          "Cannot calculate CRC for the file");
    }

    byte[] buff = new byte[BUF_SIZE];
    CRC32 crc32 = new CRC32();

    try(InputStream inputStream = new FileInputStream(inputFile)) {
      int readLen;
      while ((readLen = inputStream.read(buff)) != -1) {
        crc32.update(buff, 0, readLen);

        if (progressMonitor != null) {
          progressMonitor.updateWorkCompleted(readLen);
          if (progressMonitor.isCancelAllTasks()) {
            progressMonitor.setResult(ProgressMonitor.Result.CANCELLED);
            progressMonitor.setState(ProgressMonitor.State.READY);
            return 0;
          }
        }
      }
      return crc32.getValue();
    }
  }
 
Example 2
Source File: AddFilesToZipIT.java    From zip4j with Apache License 2.0 5 votes vote down vote up
@Test
public void testAddFileProgressMonitorThrowsExceptionWhenPerformingActionInBusyState() throws ZipException {
  expectedException.expectMessage("invalid operation - Zip4j is in busy state");
  expectedException.expect(ZipException.class);

  ZipFile zipFile = new ZipFile(generatedZipFile);
  ProgressMonitor progressMonitor = zipFile.getProgressMonitor();
  progressMonitor.setState(ProgressMonitor.State.BUSY);

  zipFile.addFile(TestUtils.getTestFileFromResources("file_PDF_1MB.pdf"));
}
 
Example 3
Source File: ZipEngine.java    From AndroidZip with Apache License 2.0 5 votes vote down vote up
public void addFiles(final ArrayList fileList, final ZipParameters parameters,
		final ProgressMonitor progressMonitor, boolean runInThread) throws ZipException {
	
	if (fileList == null || parameters == null) {
		throw new ZipException("one of the input parameters is null when adding files");
	}
	
	if(fileList.size() <= 0) {
		throw new ZipException("no files to add");
	}
	
	progressMonitor.setCurrentOperation(ProgressMonitor.OPERATION_ADD);
	progressMonitor.setState(ProgressMonitor.STATE_BUSY);
	progressMonitor.setResult(ProgressMonitor.RESULT_WORKING);
	
	if (runInThread) {
		progressMonitor.setTotalWork(calculateTotalWork(fileList, parameters));
		progressMonitor.setFileName(((File)fileList.get(0)).getAbsolutePath());
		
		Thread thread = new Thread(InternalZipConstants.THREAD_NAME) {
			public void run() {
				try {
					initAddFiles(fileList, parameters, progressMonitor);
				} catch (ZipException e) {
				}
			}
		};
		thread.start();
		
	} else {
		initAddFiles(fileList, parameters, progressMonitor);
	}
}
 
Example 4
Source File: Unzip.java    From AndroidZip with Apache License 2.0 5 votes vote down vote up
public void extractAll(final UnzipParameters unzipParameters, final String outPath,
		final ProgressMonitor progressMonitor, boolean runInThread) throws ZipException {
	
	CentralDirectory centralDirectory = zipModel.getCentralDirectory();
	
	if (centralDirectory == null || 
			centralDirectory.getFileHeaders() == null) {
		throw new ZipException("invalid central directory in zipModel");
	}
	
	final ArrayList fileHeaders = centralDirectory.getFileHeaders();
	
	progressMonitor.setCurrentOperation(ProgressMonitor.OPERATION_EXTRACT);
	progressMonitor.setTotalWork(calculateTotalWork(fileHeaders));
	progressMonitor.setState(ProgressMonitor.STATE_BUSY);
	
	if (runInThread) {
		Thread thread = new Thread(InternalZipConstants.THREAD_NAME) {
			public void run() {
				try {
					initExtractAll(fileHeaders, unzipParameters, progressMonitor, outPath);
					progressMonitor.endProgressMonitorSuccess();
				} catch (ZipException e) {
				}
			}
		};
		thread.start();
	} else {
		initExtractAll(fileHeaders, unzipParameters, progressMonitor, outPath);
	}
	
}
 
Example 5
Source File: Unzip.java    From AndroidZip with Apache License 2.0 5 votes vote down vote up
private void initExtractAll(ArrayList fileHeaders, UnzipParameters unzipParameters, 
		ProgressMonitor progressMonitor, String outPath) throws ZipException {
	
	for (int i = 0; i < fileHeaders.size(); i++) {
		FileHeader fileHeader = (FileHeader)fileHeaders.get(i);
		initExtractFile(fileHeader, outPath, unzipParameters, null, progressMonitor);
		if (progressMonitor.isCancelAllTasks()) {
			progressMonitor.setResult(ProgressMonitor.RESULT_CANCELLED);
			progressMonitor.setState(ProgressMonitor.STATE_READY);
			return;
		}
	}
}
 
Example 6
Source File: Unzip.java    From AndroidZip with Apache License 2.0 5 votes vote down vote up
public void extractFile(final FileHeader fileHeader, final String outPath,
		final UnzipParameters unzipParameters, final String newFileName, 
		final ProgressMonitor progressMonitor, boolean runInThread) throws ZipException {
	if (fileHeader == null) {
		throw new ZipException("fileHeader is null");
	}
	
	progressMonitor.setCurrentOperation(ProgressMonitor.OPERATION_EXTRACT);
	progressMonitor.setTotalWork(fileHeader.getCompressedSize());
	progressMonitor.setState(ProgressMonitor.STATE_BUSY);
	progressMonitor.setPercentDone(0);
	progressMonitor.setFileName(fileHeader.getFileName());
	
	if (runInThread) {
		Thread thread = new Thread(InternalZipConstants.THREAD_NAME) {
			public void run() {
				try {
					initExtractFile(fileHeader, outPath, unzipParameters, newFileName, progressMonitor);
					progressMonitor.endProgressMonitorSuccess();
				} catch (ZipException e) {
				}
			}
		};
		thread.start();
	} else {
		initExtractFile(fileHeader, outPath, unzipParameters, newFileName, progressMonitor);
		progressMonitor.endProgressMonitorSuccess();
	}
	
}
 
Example 7
Source File: ArchiveMaintainer.java    From AndroidZip with Apache License 2.0 5 votes vote down vote up
public void initProgressMonitorForRemoveOp(ZipModel zipModel, 
		FileHeader fileHeader, ProgressMonitor progressMonitor) throws ZipException {
	if (zipModel == null || fileHeader == null || progressMonitor == null) {
		throw new ZipException("one of the input parameters is null, cannot calculate total work");
	}
	
	progressMonitor.setCurrentOperation(ProgressMonitor.OPERATION_REMOVE);
	progressMonitor.setFileName(fileHeader.getFileName());
	progressMonitor.setTotalWork(calculateTotalWorkForRemoveOp(zipModel, fileHeader));
	progressMonitor.setState(ProgressMonitor.STATE_BUSY);
}
 
Example 8
Source File: ArchiveMaintainer.java    From AndroidZip with Apache License 2.0 5 votes vote down vote up
public void initProgressMonitorForMergeOp(ZipModel zipModel, ProgressMonitor progressMonitor) throws ZipException {
	if (zipModel == null) {
		throw new ZipException("zip model is null, cannot calculate total work for merge op");
	}
	
	progressMonitor.setCurrentOperation(ProgressMonitor.OPERATION_MERGE);
	progressMonitor.setFileName(zipModel.getZipFile());
	progressMonitor.setTotalWork(calculateTotalWorkForMergeOp(zipModel));
	progressMonitor.setState(ProgressMonitor.STATE_BUSY);
}