diff --git a/org.eclipse.jgit.java7/src/org/eclipse/jgit/util/FS_POSIX_Java7.java b/org.eclipse.jgit.java7/src/org/eclipse/jgit/util/FS_POSIX_Java7.java index b19a432e2..6a9848179 100644 --- a/org.eclipse.jgit.java7/src/org/eclipse/jgit/util/FS_POSIX_Java7.java +++ b/org.eclipse.jgit.java7/src/org/eclipse/jgit/util/FS_POSIX_Java7.java @@ -106,6 +106,11 @@ public void setLastModified(File path, long time) throws IOException { FileUtil.setLastModified(path, time); } + @Override + public void delete(File path) throws IOException { + FileUtil.delete(path); + } + @Override public long length(File f) throws IOException { return FileUtil.getLength(f); diff --git a/org.eclipse.jgit.java7/src/org/eclipse/jgit/util/FS_Win32_Java7.java b/org.eclipse.jgit.java7/src/org/eclipse/jgit/util/FS_Win32_Java7.java index 98df7c85c..555163222 100644 --- a/org.eclipse.jgit.java7/src/org/eclipse/jgit/util/FS_Win32_Java7.java +++ b/org.eclipse.jgit.java7/src/org/eclipse/jgit/util/FS_Win32_Java7.java @@ -107,6 +107,11 @@ public void setLastModified(File path, long time) throws IOException { FileUtil.setLastModified(path, time); } + @Override + public void delete(File path) throws IOException { + FileUtil.delete(path); + } + @Override public long length(File f) throws IOException { return FileUtil.getLength(f); diff --git a/org.eclipse.jgit.java7/src/org/eclipse/jgit/util/FS_Win32_Java7Cygwin.java b/org.eclipse.jgit.java7/src/org/eclipse/jgit/util/FS_Win32_Java7Cygwin.java index 1130668e5..3db2e53e4 100644 --- a/org.eclipse.jgit.java7/src/org/eclipse/jgit/util/FS_Win32_Java7Cygwin.java +++ b/org.eclipse.jgit.java7/src/org/eclipse/jgit/util/FS_Win32_Java7Cygwin.java @@ -83,6 +83,11 @@ public void setLastModified(File path, long time) throws IOException { FileUtil.setLastModified(path, time); } + @Override + public void delete(File path) throws IOException { + FileUtil.delete(path); + } + @Override public long length(File f) throws IOException { return FileUtil.getLength(f); diff --git a/org.eclipse.jgit.java7/src/org/eclipse/jgit/util/FileUtil.java b/org.eclipse.jgit.java7/src/org/eclipse/jgit/util/FileUtil.java index 3cf1c12ff..428a45f79 100644 --- a/org.eclipse.jgit.java7/src/org/eclipse/jgit/util/FileUtil.java +++ b/org.eclipse.jgit.java7/src/org/eclipse/jgit/util/FileUtil.java @@ -139,4 +139,9 @@ public static boolean setExecute(File path, boolean executable) { return path.setExecutable(executable); } + public static void delete(File path) throws IOException { + Path nioPath = path.toPath(); + Files.delete(nioPath); + } + } diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java index 1b68801ae..a5642f149 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java @@ -50,6 +50,7 @@ import java.io.InputStreamReader; import java.security.AccessController; import java.security.PrivilegedAction; +import java.text.MessageFormat; import java.util.Arrays; import java.util.concurrent.atomic.AtomicBoolean; @@ -272,6 +273,20 @@ public long length(File path) throws IOException { return path.length(); } + /** + * Delete a file. Throws an exception if delete fails. + * + * @param f + * @throws IOException + * this may be a Java7 subclass with detailed information + * @since 3.3 + */ + public void delete(File f) throws IOException { + if (!f.delete()) + throw new IOException(MessageFormat.format( + JGitText.get().deleteFileFailed, f.getAbsolutePath())); + } + /** * Resolve this file to its actual path name that the JRE can use. *