}
}
- @Test
- public void testDeleteRecursiveEmpty() throws IOException {
- File f1 = new File(trash, "test/test/a");
- File f2 = new File(trash, "test/a");
- File d1 = new File(trash, "test");
- File d2 = new File(trash, "test/test");
- File d3 = new File(trash, "test/b");
- FileUtils.mkdirs(f1.getParentFile());
- FileUtils.createNewFile(f2);
- FileUtils.createNewFile(f1);
- FileUtils.mkdirs(d3);
-
- // Cannot delete hierarchy since files exist
- try {
- FileUtils.delete(d1, FileUtils.EMPTY_DIRECTORIES_ONLY);
- fail("delete should fail");
- } catch (IOException e1) {
- try {
- FileUtils.delete(d1, FileUtils.EMPTY_DIRECTORIES_ONLY|FileUtils.RECURSIVE);
- fail("delete should fail");
- } catch (IOException e2) {
- // Everything still there
- assertTrue(f1.exists());
- assertTrue(f2.exists());
- assertTrue(d1.exists());
- assertTrue(d2.exists());
- assertTrue(d3.exists());
- }
- }
-
- // setup: delete files, only directories left
- assertTrue(f1.delete());
- assertTrue(f2.delete());
-
- // Shall not delete hierarchy without recursive
- try {
- FileUtils.delete(d1, FileUtils.EMPTY_DIRECTORIES_ONLY);
- fail("delete should fail");
- } catch (IOException e2) {
- // Everything still there
- assertTrue(d1.exists());
- assertTrue(d2.exists());
- assertTrue(d3.exists());
- }
-
- // Now delete the empty hierarchy
- FileUtils.delete(d2, FileUtils.EMPTY_DIRECTORIES_ONLY
- | FileUtils.RECURSIVE);
- assertFalse(d2.exists());
-
- // Will fail to delete non-existing without SKIP_MISSING
- try {
- FileUtils.delete(d2, FileUtils.EMPTY_DIRECTORIES_ONLY);
- fail("Cannot delete non-existent entity");
- } catch (IOException e) {
- // ok
- }
-
- // ..with SKIP_MISSING there is no exception
- FileUtils.delete(d2, FileUtils.EMPTY_DIRECTORIES_ONLY
- | FileUtils.SKIP_MISSING);
- FileUtils.delete(d2, FileUtils.EMPTY_DIRECTORIES_ONLY
- | FileUtils.RECURSIVE | FileUtils.SKIP_MISSING);
-
- // essentially the same, using IGNORE_ERRORS
- FileUtils.delete(d2, FileUtils.EMPTY_DIRECTORIES_ONLY
- | FileUtils.IGNORE_ERRORS);
- FileUtils.delete(d2, FileUtils.EMPTY_DIRECTORIES_ONLY
- | FileUtils.RECURSIVE | FileUtils.IGNORE_ERRORS);
- }
-
- @Test
- public void testDeleteRecursiveEmptyDirectoriesOnlyButIsFile()
- throws IOException {
- File f1 = new File(trash, "test/test/a");
- FileUtils.mkdirs(f1.getParentFile());
- FileUtils.createNewFile(f1);
- try {
- FileUtils.delete(f1, FileUtils.EMPTY_DIRECTORIES_ONLY);
- fail("delete should fail");
- } catch (IOException e) {
- assertTrue(f1.exists());
- }
- }
-
@Test
public void testMkdir() throws IOException {
File d = new File(trash, "test");