Example usage for org.apache.commons.vfs FileObject delete

List of usage examples for org.apache.commons.vfs FileObject delete

Introduction

In this page you can find the example usage for org.apache.commons.vfs FileObject delete.

Prototype

public int delete(FileSelector selector) throws FileSystemException;

Source Link

Document

Deletes all descendents of this file that match a selector.

Usage

From source file:org.efaps.webdav4vfs.handler.DeleteHandler.java

@Override
public void service(HttpServletRequest request, HttpServletResponse response) throws IOException {
    FileObject object = VFSBackend.resolveFile(request.getPathInfo());

    try {/*from  w ww . j a v a 2s  .  c  om*/
        String fragment = new URI(request.getRequestURI()).getFragment();
        if (fragment != null) {
            response.sendError(HttpServletResponse.SC_FORBIDDEN);
            return;
        }
    } catch (URISyntaxException e) {
        throw new IOException(e.getMessage());
    }

    try {
        if (!LockManager.getInstance().evaluateCondition(object, getIf(request)).result) {
            response.sendError(HttpServletResponse.SC_PRECONDITION_FAILED);
            return;
        }
    } catch (LockException e) {
        response.sendError(SC_LOCKED);
        return;
    } catch (ParseException e) {
        response.sendError(HttpServletResponse.SC_PRECONDITION_FAILED);
        return;
    }

    if (object.exists()) {
        int deletedObjects = object.delete(ALL_FILES_SELECTOR);
        LOG.debug("deleted " + deletedObjects + " objects");
        if (deletedObjects > 0) {
            response.setStatus(HttpServletResponse.SC_OK);
        } else {
            response.sendError(HttpServletResponse.SC_FORBIDDEN);
        }
    } else {
        response.sendError(HttpServletResponse.SC_NOT_FOUND);
    }
}

From source file:org.jclouds.vfs.provider.blobstore.test.BlobStoreProviderTestCase.java

private FileObject setUpTests(final FileSystemManager manager, String uri)
        throws FileSystemException, IOException {
    FileObject base = manager.resolveFile(uri);
    FileObject writeTests = base.resolveFile("write-tests");
    FileObject readTests = base.resolveFile("read-tests");

    if (base instanceof BlobStoreFileObject) {
        BlobStore blobStore = ((BlobStoreFileObject) base).getBlobStore();
        String container = ((BlobStoreFileObject) base).getContainer();
        blobStore.clearContainer(container);
    } else {/*from ww  w .  j  a va2 s. c  o m*/
        writeTests.delete(new AllFileSelector());
        readTests.delete(new AllFileSelector());
    }

    writeTests.createFolder();
    readTests.createFolder();
    for (String name : new String[] { "file1.txt", "file%25.txt", "file space.txt" }) {
        writeFile(readTests, name, FILE1_CONTENT);
    }
    writeFile(readTests, "empty.txt", "");
    FileObject dir = readTests.resolveFile("dir1");
    dir.createFolder();
    write3Files(dir);
    for (String subdirName : new String[] { "subdir1", "subdir2", "subdir3" }) {
        FileObject subdir = dir.resolveFile(subdirName);
        subdir.createFolder();
        write3Files(subdir);
    }
    return base;
}

From source file:org.jclouds.vfs.tools.blobstore.BlobStoreShell.java

/**
 * Does an 'rm' command./*from  w w w.j  a v  a  2s.  co m*/
 */
private void rm(final String[] cmd) throws Exception {
    if (cmd.length < 2) {
        throw new Exception("USAGE: rm <path>");
    }

    final FileObject file = remoteMgr.resolveFile(remoteCwd, cmd[1]);
    file.delete(Selectors.SELECT_SELF);
}

From source file:org.josso.tooling.gshell.install.installer.VFSInstaller.java

/**
 * @param srcFolder//from   w  w w .  ja  va  2 s  . co  m
 * @param destDir
 * @param replace
 * @throws java.io.IOException
 */
protected void installFolder(FileObject srcFolder, FileObject destDir, String newName, boolean replace)
        throws IOException {

    // Check destination folder
    if (!destDir.exists()) {
        printInstallErrStatus(srcFolder.getName().getBaseName(),
                "Target directory not found " + destDir.getName().getBaseName());
        throw new IOException("Target directory not found " + destDir.getName().getBaseName());
    }

    // This is the new folder we're creating in destination.
    FileObject newFolder = destDir.resolveFile(newName);

    boolean exists = newFolder.exists();

    if (!replace && exists) {
        printInstallWarnStatus(newFolder.getName().getBaseName(), "Not replaced (see --replace option)");
        return;
    }

    if (exists) {
        // remove all descendents (removes old jars and other files when upgrading josso gateway)
        newFolder.delete(Selectors.EXCLUDE_SELF);
    }

    newFolder.copyFrom(srcFolder, Selectors.SELECT_ALL); // Copy ALL descendats

    printInstallOkStatus(srcFolder.getName().getBaseName(),
            (exists ? "Replaced " : "Created ") + newFolder.getName().getFriendlyURI());
}

From source file:org.objectweb.proactive.extensions.dataspaces.vfs.VFSNodeScratchSpaceImpl.java

private FileObject createEmptyDirectoryRelative(final FileObject parent, final String path)
        throws org.apache.commons.vfs.FileSystemException {

    FileObject f = parent.resolveFile(path);
    f.delete(Selectors.EXCLUDE_SELF);
    f.createFolder();// w  w  w.  j a v  a2  s .  c  om
    return f;
}

From source file:org.pentaho.di.job.entries.deletefiles.JobEntryDeleteFiles.java

private boolean ProcessFile(String filename, String wildcard, Job parentJob) {
    boolean rcode = false;
    FileObject filefolder = null;
    String realFilefoldername = environmentSubstitute(filename);
    String realwildcard = environmentSubstitute(wildcard);

    try {/*from  w  w w.  ja  v a 2  s. c o  m*/
        filefolder = KettleVFS.getFileObject(realFilefoldername, this);

        if (filefolder.exists()) {
            // the file or folder exists
            if (filefolder.getType() == FileType.FOLDER) {
                // It's a folder
                if (log.isDetailed()) {
                    logDetailed(BaseMessages.getString(PKG, "JobEntryDeleteFiles.ProcessingFolder",
                            realFilefoldername));
                    // Delete Files
                }

                int Nr = filefolder
                        .delete(new TextFileSelector(filefolder.toString(), realwildcard, parentJob));

                if (log.isDetailed()) {
                    logDetailed(BaseMessages.getString(PKG, "JobEntryDeleteFiles.TotalDeleted",
                            String.valueOf(Nr)));
                }
                rcode = true;
            } else {
                // It's a file
                if (log.isDetailed()) {
                    logDetailed(BaseMessages.getString(PKG, "JobEntryDeleteFiles.ProcessingFile",
                            realFilefoldername));
                }
                boolean deleted = filefolder.delete();
                if (!deleted) {
                    logError(BaseMessages.getString(PKG, "JobEntryDeleteFiles.CouldNotDeleteFile",
                            realFilefoldername));
                } else {
                    if (log.isBasic()) {
                        logBasic(BaseMessages.getString(PKG, "JobEntryDeleteFiles.FileDeleted", filename));
                    }
                    rcode = true;
                }
            }
        } else {
            // File already deleted, no reason to try to delete it
            if (log.isBasic()) {
                logBasic(BaseMessages.getString(PKG, "JobEntryDeleteFiles.FileAlreadyDeleted",
                        realFilefoldername));
            }
            rcode = true;
        }
    } catch (Exception e) {
        logError(BaseMessages.getString(PKG, "JobEntryDeleteFiles.CouldNotProcess", realFilefoldername,
                e.getMessage()), e);
    } finally {
        if (filefolder != null) {
            try {
                filefolder.close();
                filefolder = null;
            } catch (IOException ex) {
                // Ignore
            }
        }
    }

    return rcode;
}

From source file:org.pentaho.di.job.entries.deletefolders.JobEntryDeleteFolders.java

private boolean deleteFolder(String foldername) {
    boolean rcode = false;
    FileObject filefolder = null;

    try {//from w w  w  .ja  va  2 s. c  o  m
        filefolder = KettleVFS.getFileObject(foldername, this);

        if (filefolder.exists()) {
            // the file or folder exists
            if (filefolder.getType() == FileType.FOLDER) {
                // It's a folder
                if (log.isDetailed()) {
                    logDetailed(
                            BaseMessages.getString(PKG, "JobEntryDeleteFolders.ProcessingFolder", foldername));
                }
                // Delete Files
                int Nr = filefolder.delete(new TextFileSelector());

                if (log.isDetailed()) {
                    logDetailed(BaseMessages.getString(PKG, "JobEntryDeleteFolders.TotalDeleted", foldername,
                            String.valueOf(Nr)));
                }
                rcode = true;
            } else {
                // Error...This file is not a folder!
                logError(BaseMessages.getString(PKG, "JobEntryDeleteFolders.Error.NotFolder"));
            }
        } else {
            // File already deleted, no reason to try to delete it
            if (log.isBasic()) {
                logBasic(BaseMessages.getString(PKG, "JobEntryDeleteFolders.FolderAlreadyDeleted", foldername));
            }
            rcode = true;
        }
    } catch (Exception e) {
        logError(
                BaseMessages.getString(PKG, "JobEntryDeleteFolders.CouldNotDelete", foldername, e.getMessage()),
                e);
    } finally {
        if (filefolder != null) {
            try {
                filefolder.close();
                filefolder = null;
            } catch (IOException ex) {
                // Ignore
            }
        }
    }

    return rcode;
}

From source file:org.pentaho.di.job.entries.hadooptransjobexecutor.DistributedCacheUtil.java

/**
 * Delete a directory and all of its contents
 *
 * @param dir Directory to delete/*w  w  w .j  a  v a 2 s  . c o m*/
 * @return True if the directory was deleted successfully
 */
public boolean deleteDirectory(FileObject dir) throws FileSystemException {
    dir.delete(new AllFileSelector());
    return !dir.exists();
}

From source file:org.pentaho.di.job.entries.hadooptransjobexecutor.DistributedCacheUtilTest.java

@Test
public void findFiles_vfs() throws Exception {
    DistributedCacheUtil ch = new DistributedCacheUtil();

    FileObject testFolder = createTestFolderWithContent();

    try {//  w  w w .  j  a v a  2 s  .c o  m
        // Simply test we can find the jar files in our test folder
        List<String> jars = ch.findFiles(testFolder, "jar");
        assertEquals(2, jars.size());

        // Look for all files and folders
        List<String> all = ch.findFiles(testFolder, null);
        assertEquals(5, all.size());
    } finally {
        testFolder.delete(new AllFileSelector());
    }
}

From source file:org.pentaho.di.job.entries.hadooptransjobexecutor.DistributedCacheUtilTest.java

@Test
public void findFiles_vfs_hdfs() throws Exception {

    // Stage files then make sure we can find them in HDFS
    DistributedCacheUtil ch = new DistributedCacheUtil();
    Configuration conf = new Configuration();
    org.apache.hadoop.fs.FileSystem fs = org.apache.hadoop.fs.FileSystem.getLocal(conf);
    HDFSFileSystem.setMockHDFSFileSystem(fs);

    // Must use absolute paths so the HDFS VFS FileSystem can resolve the URL properly (can't do relative paths when
    // using KettleVFS.getFileObject() within HDFS)
    Path root = new Path(KettleVFS.getFileObject(".").getURL().getPath() + "/bin/test/findFiles_hdfs");
    Path dest = new Path(root, "org/pentaho/mapreduce/");

    FileObject hdfsDest = KettleVFS.getFileObject("hdfs://localhost/" + dest.toString());

    // Copy the contents of test folder
    FileObject source = createTestFolderWithContent();

    try {/*from  ww  w .  ja va  2 s  .  c  o  m*/
        try {
            ch.stageForCache(source, fs, dest, true);

            List<String> files = ch.findFiles(hdfsDest, null);
            assertEquals(5, files.size());
        } finally {
            fs.delete(root, true);
        }
    } finally {
        source.delete(new AllFileSelector());
    }
}