assertTrue(f.delete());
}
+ public void testCreateNewFile() throws IOException {
+ File f = new File(trash, "x");
+ FileUtils.createNewFile(f);
+ assertTrue(f.exists());
+
+ try {
+ FileUtils.createNewFile(f);
+ fail("creation of already existing file must fail");
+ } catch (IOException e) {
+ // expected
+ }
+
+ FileUtils.delete(f);
+ }
+
}
countingObjects=Counting objects
createBranchFailedUnknownReason=Create branch failed for unknown reason
createBranchUnexpectedResult=Create branch returned unexpected result {0}
+createNewFileFailed=Could not create new file {0}
credentialPassword=Password
credentialUsername=Username
daemonAlreadyRunning=Daemon already running
/***/ public String countingObjects;
/***/ public String createBranchFailedUnknownReason;
/***/ public String createBranchUnexpectedResult;
+ /***/ public String createNewFileFailed;
/***/ public String credentialPassword;
/***/ public String credentialUsername;
/***/ public String daemonAlreadyRunning;
import java.io.File;
import java.io.IOException;
+import java.nio.channels.FileLock;
import java.text.MessageFormat;
import org.eclipse.jgit.JGitText;
JGitText.get().mkDirsFailed, d.getAbsolutePath()));
}
}
+
+ /**
+ * Atomically creates a new, empty file named by this abstract pathname if
+ * and only if a file with this name does not yet exist. The check for the
+ * existence of the file and the creation of the file if it does not exist
+ * are a single operation that is atomic with respect to all other
+ * filesystem activities that might affect the file.
+ * <p>
+ * Note: this method should not be used for file-locking, as the resulting
+ * protocol cannot be made to work reliably. The {@link FileLock} facility
+ * should be used instead.
+ *
+ * @param f
+ * the file to be created
+ * @throws IOException
+ * if the named file already exists or if an I/O error occurred
+ */
+ public static void createNewFile(File f) throws IOException {
+ if (!f.createNewFile())
+ throw new IOException(MessageFormat.format(
+ JGitText.get().createNewFileFailed, f));
+ }
}