Merge pull request #25 from overleaf/delete-temporary-files

Delete temporary files created by Tar on close
This commit is contained in:
John Lees-Miller 2017-07-14 21:41:54 +01:00 committed by GitHub
commit 8e15d63a2f
2 changed files with 42 additions and 1 deletions

View file

@ -0,0 +1,41 @@
package uk.ac.ic.wlgitbridge.util;
import java.io.*;
/**
* A {@link java.io.FileInputStream} which deletes the underlying
* {@link java.io.File} on close.
*
* @author Michael Walker (barrucadu) {@literal <mike@barrucadu.co.uk>}
*/
public class DeletingFileInputStream extends FileInputStream {
private File file;
/**
* Creates a {@link java.io.FileInputStream} by opening a
* connection to an actual file, the file named by the
* {@link java.io.File} object file in the file system.
*
* When the {@link close} method is called, the {@code File} will
* be deleted.
*/
public DeletingFileInputStream(File file) throws FileNotFoundException {
super(file);
this.file = file;
}
/**
* Closes this input stream and deletes the underlying file.
*/
@Override
public void close() throws IOException {
try {
super.close();
} finally {
if(file != null) {
file.delete();
file = null;
}
}
}
}

View file

@ -46,7 +46,7 @@ public class Tar {
if (sizePtr != null) {
sizePtr[0] = tmp.length();
}
return new FileInputStream(tmp);
return new DeletingFileInputStream(tmp);
}
public static void unzip(