53 lines
1.8 KiB
Java
53 lines
1.8 KiB
Java
import java.io.BufferedInputStream;
|
|
import java.io.BufferedOutputStream;
|
|
import java.io.File;
|
|
import java.io.FileOutputStream;
|
|
import java.io.IOException;
|
|
import java.nio.file.FileSystem;
|
|
import java.nio.file.FileSystems;
|
|
import java.nio.file.Files;
|
|
import java.nio.file.Path;
|
|
import java.nio.file.Paths;
|
|
import java.util.Enumeration;
|
|
import java.util.zip.ZipEntry;
|
|
import java.util.zip.ZipFile;
|
|
|
|
public class ZipFileManipulator {
|
|
|
|
private String fileName; // file which will be extracted from
|
|
private String extractionPath; // temporary path where the file will be extracted to
|
|
|
|
public ZipFileManipulator(String fileName, String extractionPath) {
|
|
this.fileName = fileName;
|
|
this.extractionPath = extractionPath;
|
|
}
|
|
|
|
public void extractFile(String targetFile) throws Exception {
|
|
File outputLocation = new File(extractionPath, targetFile);
|
|
|
|
// path to the file the file will be extracted from
|
|
Path zipFile = Paths.get(fileName);
|
|
|
|
// load zip file as filesystem
|
|
FileSystem fileSystem = FileSystems.newFileSystem(zipFile, null);
|
|
|
|
Path source = fileSystem.getPath("ppt/" + targetFile); // location of targetFile inside the zip file
|
|
|
|
Files.copy(source, outputLocation.toPath());
|
|
}
|
|
|
|
public void insertFile(String targetFile) throws Exception {
|
|
Path myFilePath = Paths.get(targetFile);
|
|
|
|
Path zipFilePath = Paths.get(this.fileName);
|
|
try( FileSystem fs = FileSystems.newFileSystem(zipFilePath, null) ){
|
|
Path fileInsideZipPath = fs.getPath("/ppt/" + targetFile);
|
|
Files.delete(fileInsideZipPath);
|
|
Files.copy(myFilePath, fileInsideZipPath);
|
|
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
} |