@Override public boolean mkdirs() { if (null == innerArchive) return file.mkdirs(); final TFile parent = getParentFile(); if (null != parent && !parent.exists()) parent.mkdirs(); // TODO: Profile: return parent.isDirectory() && mkdir(); // May perform better in certain situations where (probably false // positive) archive files are involved. return mkdir(); }
/** * Ensures that {@code node} exists as a (virtual) directory in the * (federated) file system and updates the tree accordingly. * Note that the current selection may get lost. * * @param recursive whether or not any missing ancestor directories shall * get created if required. * @throws IOException On any I/O failure. */ public void mkdir(final TFile node, final boolean recursive) throws IOException { node.mkdir(recursive); nodeInserted(node); }
final TFile parent = getParentFile(); if (null != parent && !parent.exists()) parent.mkdir(recursive);
private void mkdir(final String[] args, final boolean recursive) throws IllegalUsageException, IOException { if (args.length < 1) throw new IllegalUsageException(); for (int i = 0; i < args.length; i++) { final TFile file = new TFile(args[i]); final boolean ok = recursive ? file.mkdirs() : file.mkdir(); if (!ok) { final String msg; if (!file.exists()) msg = resources.getString("mkdir.ccd"); else if (file.isDirectory()) msg = resources.getString("mkdir.dea"); else if (file.isFile()) msg = resources.getString("mkdir.fea"); else msg = resources.getString("mkdir.sfodea"); throw new IOException(file + " (" + msg + ")"); } } }
private String extractToDir(String extension, String location) { File tmpDir = TempFileProvider.getTempDir(); try { TFile zipFile = new TFile(this.getClass().getClassLoader().getResource(location).getPath()); TFile outDir = new TFile(tmpDir.getAbsolutePath()+"/moduleManagementToolTestDir"+System.currentTimeMillis()); outDir.mkdir(); zipFile.cp_rp(outDir); TVFS.umount(zipFile); return outDir.getPath(); } catch (Exception e) { e.printStackTrace(); } return null; } public void testNoWar() throws Exception
if (!backupLocationDirectory.exists()) backupLocationDirectory.mkdir();
if (!backupLocationDirectory.exists()) backupLocationDirectory.mkdir();
assertTrue(dir6.mkdir()); // create all at once! note archive is in current directory! assertFalse(dir6.mkdir()); // exists already! assertFalse(dir5.mkdir()); // exists already! assertFalse(dir4.mkdir()); // exists already! assertFalse(dir3.mkdir()); // exists already! assertFalse(dir2.mkdir()); // exists already! assertFalse(dir1.mkdir()); // exists already! config.setLenient(false); assertFalse(dir6.mkdir()); assertFalse(dir5.mkdir()); assertFalse(dir4.mkdir()); assertFalse(dir3.mkdir()); assertFalse(dir2.mkdir()); assertTrue(dir1.mkdir()); assertTrue(dir2.mkdir()); assertTrue(dir3.mkdir()); assertTrue(dir4.mkdir()); assertTrue(dir5.mkdir()); assertTrue(dir6.mkdir()); } finally { config.close();
@Test public final void testCopyDelete() throws IOException { final String[] names = { "0" + getSuffix(), "1" + getSuffix(), //"2" + getSuffix(), }; assertTrue(archive.mkdir()); // create valid archive file assertCopyDelete(archive, names, 0); archive.rm(); assertTrue(archive.toNonArchiveFile().mkdir()); // create false positive archive file assertCopyDelete(archive, names, 0); archive.rm(); }
@Test public final void testFalsePositives() throws IOException { assertFalsePositive(archive); // Dito for entry. final TFile entry = new TFile(archive, "entry" + getSuffix()); assertTrue(archive.toNonArchiveFile().mkdir()); assertFalsePositive(entry); archive.rm(); assertTrue(archive.mkdir()); assertFalsePositive(entry); archive.rm(); }
private void assertCopyDelete(final TFile parent, String[] names, int off) throws IOException { if (off >= names.length) return; final TFile dir = new TFile(parent, names[off]); assertTrue(dir.mkdir()); // create valid archive file assertCopyDelete(parent, dir); assertCopyDelete(dir, names, off + 1); // continue recursion dir.rm(); assertTrue(dir.toNonArchiveFile().mkdir()); // create false positive archive file assertCopyDelete(parent, dir); assertCopyDelete(dir, names, off + 1); // continue recursion dir.rm(); }
@Test public final void testIllegalDirectoryOperations() throws IOException { try { final String[] names = { "inner" + getSuffix(), "dir", }; TFile file = archive; for (int i = 0; i <= names.length; i++) { final TFile file2 = file.toNonArchiveFile(); assertTrue(file2.mkdir()); assertIllegalDirectoryOperations(file2); file2.rm(); assertTrue(file.mkdir()); assertIllegalDirectoryOperations(file); if (i < names.length) file = new TFile(file, names[i]); } } finally { archive.rm_r(); } }
@Test public final void testList() throws IOException { final File dir = createTempFile(); final TFile tdir = new TFile(dir); assertNull(dir.listFiles()); assertNull(tdir.listFiles()); assertNull(tdir.toNonArchiveFile().listFiles()); TFile.rm(dir); // Create regular directory for testing. assertTrue(dir.mkdir()); for (int i = MEMBERS.length; --i >= 0; ) assertTrue(new File(dir, MEMBERS[i]).createNewFile()); final File[] files = dir.listFiles(); Arrays.sort(files); assertList(files, tdir); TFile.rm_r(tdir); // Repeat test with regular archive file. assertTrue(tdir.mkdir()); for (int i = MEMBERS.length; --i >= 0; ) assertTrue(new TFile(tdir, MEMBERS[i]).createNewFile()); assertList(files, tdir); TFile.rm_r(tdir); }
@Test public final void testStrictFileOutputStream() throws IOException { TFile file = new TFile(archive, "test.txt"); TConfig config = TConfig.push(); try { config.setLenient(false); try { assertFileOutputStream(file); fail("Creating ghost directories should not be allowed when File.isLenient() is false!"); } catch (FileNotFoundException expected) { } assertTrue(archive.mkdir()); assertFileOutputStream(file); archive.rm(); } finally { config.close(); } }
private void assertDirectoryTree(TFile basePath, TFile reversePath) throws IOException { if (reversePath == null) { // We're at the leaf of the directory tree. final TFile test = new TFile(basePath, "test.txt"); //testCreateNewFile(basePath, test); assertFileOutputStream(test); return; } final TFile member = new TFile(basePath, reversePath.getName()); final boolean created = member.mkdir(); final TFile children = reversePath.getParentFile(); assertDirectoryTree(member, children); assertListFiles(basePath, member.getName()); assertTrue(member.exists()); assertTrue(member.isDirectory()); assertFalse(member.isFile()); if (member.isArchive()) assertEquals(0, member.length()); if (created) { member.rm(); assertFalse(member.exists()); assertFalse(member.isDirectory()); assertFalse(member.isFile()); assertEquals(0, member.length()); } }