mirror of https://github.com/apache/poi.git
Fix #55647 - When creating a temp file, ensure the name isn't already taken
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1531040 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
793791ece8
commit
b34a3eefa7
|
@ -37,6 +37,7 @@ public final class TempFile {
|
|||
* Don't forget to close all files or it might not be possible to delete them.
|
||||
*/
|
||||
public static File createTempFile(String prefix, String suffix) {
|
||||
// Identify and create our temp dir, if needed
|
||||
if (dir == null)
|
||||
{
|
||||
dir = new File(System.getProperty("java.io.tmpdir"), "poifiles");
|
||||
|
@ -45,9 +46,19 @@ public final class TempFile {
|
|||
dir.deleteOnExit();
|
||||
}
|
||||
|
||||
// Generate a unique new filename
|
||||
File newFile = new File(dir, prefix + rnd.nextInt() + suffix);
|
||||
if (newFile.exists())
|
||||
{
|
||||
// That name is already taken, try another
|
||||
newFile = createTempFile(prefix, suffix);
|
||||
}
|
||||
|
||||
// Set the delete on exit flag, unless explicitly disabled
|
||||
if (System.getProperty("poi.keep.tmp.files") == null)
|
||||
newFile.deleteOnExit();
|
||||
|
||||
// All done
|
||||
return newFile;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue