|
|
|
@ -77,6 +77,11 @@ public class FileUtils {
|
|
|
|
|
*/ |
|
|
|
|
public static final int SKIP_MISSING = 4; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Option not to throw exceptions when a deletion finally doesn't succeed. |
|
|
|
|
*/ |
|
|
|
|
public static final int IGNORE_ERRORS = 8; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Delete file or empty folder |
|
|
|
|
* |
|
|
|
@ -106,7 +111,8 @@ public class FileUtils {
|
|
|
|
|
* if deletion of {@code f} fails. This may occur if {@code f} |
|
|
|
|
* didn't exist when the method was called. This can therefore |
|
|
|
|
* cause IOExceptions during race conditions when multiple |
|
|
|
|
* concurrent threads all try to delete the same file. |
|
|
|
|
* concurrent threads all try to delete the same file. This |
|
|
|
|
* exception is not thrown when IGNORE_ERRORS is set. |
|
|
|
|
*/ |
|
|
|
|
public static void delete(final File f, int options) throws IOException { |
|
|
|
|
if ((options & SKIP_MISSING) != 0 && !f.exists()) |
|
|
|
@ -131,8 +137,9 @@ public class FileUtils {
|
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
throw new IOException(MessageFormat.format( |
|
|
|
|
JGitText.get().deleteFileFailed, f.getAbsolutePath())); |
|
|
|
|
if ((options & IGNORE_ERRORS) == 0) |
|
|
|
|
throw new IOException(MessageFormat.format( |
|
|
|
|
JGitText.get().deleteFileFailed, f.getAbsolutePath())); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|