Example usage for org.apache.commons.vfs2 FileType FOLDER

List of usage examples for org.apache.commons.vfs2 FileType FOLDER

Introduction

In this page you can find the example usage for org.apache.commons.vfs2 FileType FOLDER.

Prototype

FileType FOLDER

To view the source code for org.apache.commons.vfs2 FileType FOLDER.

Click Source Link

Document

A folder.

Usage

From source file:org.cloudifysource.esc.installer.filetransfer.VfsFileTransfer.java

@Override
public void copyFiles(final InstallationDetails details, final Set<String> excludedFiles,
        final List<File> additionalFiles, final long endTimeMillis)
        throws TimeoutException, InstallerException {

    logger.fine("Copying files to: " + host + " from local dir: " + localDir.getName().getPath() + " excluding "
            + excludedFiles.toString());

    try {/*  w  ww.  j a  v  a 2s.  com*/

        if (remoteDir.exists()) {
            FileType type = remoteDir.getType();
            if (!type.equals(FileType.FOLDER)) {
                throw new InstallerException("The remote location: " + remoteDir.getName().getFriendlyURI()
                        + " exists but is not a directory");
            }

            if (deleteRemoteDirectoryContents) {
                logger.info("Deleting contents of remote directory: " + remoteDir.getName().getFriendlyURI());
                remoteDir.delete(new FileDepthSelector(1, Integer.MAX_VALUE));
            }
            FileObject[] children = remoteDir.getChildren();
            if (children.length > 0) {

                throw new InstallerException(
                        "The remote directory: " + remoteDir.getName().getFriendlyURI() + " is not empty");
            }
        }

        remoteDir.copyFrom(localDir, new FileSelector() {

            @Override
            public boolean includeFile(final FileSelectInfo fileInfo) throws Exception {
                if (excludedFiles.contains(fileInfo.getFile().getName().getBaseName())) {
                    logger.fine(fileInfo.getFile().getName().getBaseName() + " excluded");
                    return false;

                }
                final FileObject remoteFile = fileSystemManager.resolveFile(remoteDir,
                        localDir.getName().getRelativeName(fileInfo.getFile().getName()));

                if (!remoteFile.exists()) {
                    logger.fine(fileInfo.getFile().getName().getBaseName() + " missing on server");
                    return true;
                }

                if (fileInfo.getFile().getType() == FileType.FILE) {
                    final long remoteSize = remoteFile.getContent().getSize();
                    final long localSize = fileInfo.getFile().getContent().getSize();
                    final boolean res = localSize != remoteSize;
                    if (res) {
                        logger.fine(fileInfo.getFile().getName().getBaseName() + " different on server");
                    }
                    return res;
                }
                return false;

            }

            @Override
            public boolean traverseDescendents(final FileSelectInfo fileInfo) throws Exception {
                return true;
            }
        });

        for (final File file : additionalFiles) {
            logger.fine("copying file: " + file.getAbsolutePath() + " to remote directory");
            final FileObject fileObject = fileSystemManager.resolveFile("file:" + file.getAbsolutePath());
            final FileObject remoteFile = remoteDir.resolveFile(file.getName());
            remoteFile.copyFrom(fileObject, new AllFileSelector());
        }

        logger.fine("Copying files to: " + host + " completed.");
    } catch (final FileSystemException e) {
        throw new InstallerException("Failed to copy files to remote host " + host + ": " + e.getMessage(), e);

    }
    checkTimeout(endTimeMillis);

}

From source file:org.codehaus.mojo.vfs.internal.DefaultVfsDirectoryScanner.java

private boolean isDirectory(FileObject file) throws FileSystemException {
    if (FileType.FOLDER == file.getType()) {
        return true;
    }/* w  w w  . j a  v  a 2  s .c om*/

    if (FileType.FILE_OR_FOLDER == file.getType()) {
        try {
            file.getChildren();
        } catch (FileNotFolderException e) {
            return false;
        }

        return true;
    }

    return false;
}

From source file:org.datacleaner.user.DataCleanerHome.java

private static boolean isUsable(FileObject candidate) throws FileSystemException {
    if (candidate != null) {
        if (candidate.exists() && candidate.getType() == FileType.FOLDER) {
            FileObject conf = candidate.resolveFile("conf.xml");
            if (conf.exists() && conf.getType() == FileType.FILE) {
                return true;
            }/*from   www. j a  v a2s  .  c om*/
        }
    }
    return false;
}

From source file:org.datacleaner.user.upgrade.DataCleanerHomeUpgrader.java

private FileObject findUpgradeCandidate(FileObject target) throws FileSystemException {
    FileObject parentFolder = target.getParent();

    List<FileObject> versionFolders = new ArrayList<>();
    FileObject[] allFoldersInParent = parentFolder.findFiles(new FileDepthSelector(1, 1));
    for (FileObject folderInParent : allFoldersInParent) {
        final String folderInParentName = folderInParent.getName().getBaseName();
        if (folderInParent.getType().equals(FileType.FOLDER)
                && (!folderInParentName.equals(target.getName().getBaseName()))
                && (!candidateBlacklist.contains(folderInParentName))) {
            versionFolders.add(folderInParent);
        }//from w  w w.  j a  va  2 s . co m
    }

    List<FileObject> validatedVersionFolders = validateVersionFolders(versionFolders);

    if (!validatedVersionFolders.isEmpty()) {

        List<String> versions = new ArrayList<>();
        for (FileObject validatedVersionFolder : validatedVersionFolders) {
            String baseName = validatedVersionFolder.getName().getBaseName();
            versions.add(baseName);
        }

        final Comparator<String> comp = new VersionComparator();
        String latestVersion = Collections.max(versions, comp);
        FileObject latestVersionFolder = null;
        for (FileObject validatedVersionFolder : validatedVersionFolders) {
            if (validatedVersionFolder.getName().getBaseName().equals(latestVersion)) {
                latestVersionFolder = validatedVersionFolder;
            }
        }
        return latestVersionFolder;
    } else {
        return null;
    }
}

From source file:org.datacleaner.util.VFSUtilsTest.java

public void test1VfsAssumptions() throws Exception {
    FileSystemManager manager = VFS.getManager();

    FileObject baseFile = manager.getBaseFile();
    assertTrue(baseFile == null || "core".equals(baseFile.getName().getBaseName()));

    File file = new File("src/main/java");
    assertNotNull(manager.resolveFile(file.getAbsolutePath()));

    ((DefaultFileSystemManager) manager).setBaseFile(new File("."));

    baseFile = manager.getBaseFile();/*w ww . ja  va  2 s  . co m*/

    assertEquals("core", baseFile.getName().getBaseName());

    FileObject javaFolder = manager.resolveFile("src/main/java");
    assertTrue(javaFolder.getType() == FileType.FOLDER);

    FileObject rootFolder = manager.resolveFile(".");
    assertTrue(rootFolder.getType() == FileType.FOLDER);
    assertEquals("core", rootFolder.getName().getBaseName());

    File javaFolderFile = VFSUtils.toFile(javaFolder);
    assertNotNull(javaFolderFile);
    assertTrue(javaFolderFile.exists());
    assertTrue(javaFolderFile.isDirectory());
}

From source file:org.freedesktop.mime.DefaultMIMEService.java

public MIMEEntry getMimeTypeForFile(FileObject file, boolean useMagic) throws IOException {
    // Directories are always inode/directory
    try {//from   ww  w.  ja v  a  2 s. c  o  m
        if (file.getType().equals(FileType.FOLDER)) {
            return getEntryForMimeType("inode/directory");
        }
    } catch (FileSystemException e) {
        throw new Error(e);
    }

    // First try matching using glob pattterns
    try {
        MIMEEntry mimeTypeForPattern = getMimeTypeForPattern(file.getName().getPath());
        if (mimeTypeForPattern != null) {
            return mimeTypeForPattern;
        }
    } catch (MagicRequiredException mre) {
        Log.debug("Conflicting match, magic required");

        // Try and get exact match using magic
        if (useMagic) {
            for (GlobEntry ge : mre.getAlternatives()) {
                MagicEntry me = magicService.getEntity(ge.getInternalName());
                if (me == null) {
                    Log.debug("NO Mime Entry for " + ge.getInternalName());
                }
                if (me != null && me.match(file)) {
                    MIMEEntry entity = getEntity(me.getInternalName());
                    if (entity != null) {
                        Log.debug("Will use " + entity.getName());
                        return entity;
                    }
                }
            }
        }

        // Return the first one we have a mime entry for
        for (GlobEntry ge : mre.getAlternatives()) {
            Log.debug("Trying " + ge.getInternalName());
            MIMEEntry me = getEntity(ge.getInternalName());
            if (me != null) {
                Log.debug("NO Mime Entry for " + ge.getInternalName());
            } else {
                Log.debug("Will use " + me.getInternalName());
                return me;
            }
        }

    }

    /*
     * If the glob matching fails or results in multiple conflicting
     * mimetypes, read the contents of the file and do magic sniffing on it.
     */
    //
    // Log.warn("Slow magic search  for " + file.getName());
    // for (MagicEntry me : magicService.getAllEntities()) {
    // if (me.match(file)) {
    // return getEntity(me.getInternalName());
    // }
    // }

    if (useMagic) {
        return checkForTextOrBinary(file);
    } else {
        return getEntity("application/octet-stream");
    }
}

From source file:org.fuin.vfs2.filter.DirectoryFileFilter.java

/**
 * Checks to see if the file is a directory.
 * /*from  w ww. j a v a2  s. com*/
 * @param fileInfo
 *            the File to check
 * 
 * @return {@code true} if the file is a directory
 */
@Override
public boolean accept(final FileSelectInfo fileInfo) {
    try {
        return fileInfo.getFile().getType() == FileType.FOLDER;
    } catch (final FileSystemException ex) {
        throw new RuntimeException(ex);
    }
}

From source file:org.fuin.vfs2.filter.EmptyFileFilter.java

/**
 * Checks to see if the file is empty. A non-existing file is also
 * considered empty.//from   w  w w.j  a  v  a  2s .  c om
 * 
 * @param fileInfo
 *            the file or directory to check
 * 
 * @return {@code true} if the file or directory is <i>empty</i>, otherwise
 *         {@code false}.
 */
@Override
public boolean accept(final FileSelectInfo fileInfo) {
    final FileObject file = fileInfo.getFile();
    try {
        if (!file.exists()) {
            return true;
        }
        if (file.getType() == FileType.FOLDER) {
            final FileObject[] files = file.getChildren();
            return files == null || files.length == 0;
        }
        final FileContent content = file.getContent();
        try {
            return content.getSize() == 0;
        } finally {
            content.close();
        }
    } catch (final FileSystemException ex) {
        throw new RuntimeException(ex);
    }
}

From source file:org.geoserver.backuprestore.utils.BackupUtils.java

/**
 * @param zos/*from   w ww .j a v  a2 s  .  c om*/
 * @param sourceFile
 * @throws FileSystemException
 * @throws IOException
 */
private static void writeEntry(ZipOutputStream zos, FileObject sourceFile, String baseDir)
        throws FileSystemException, IOException {
    if (sourceFile.getType() == FileType.FOLDER) {
        // add entry/-ies.
        for (FileObject file : sourceFile.getChildren()) {
            writeEntry(zos, file, Paths.path(baseDir, sourceFile.getName().getBaseName()));
        }
    } else {
        String fileName = (baseDir != null ? Paths.path(baseDir, sourceFile.getName().getBaseName())
                : sourceFile.getName().getBaseName());
        ZipEntry zipEntry = new ZipEntry(fileName);
        InputStream is = sourceFile.getContent().getInputStream();

        // Write to zip.
        byte[] buf = new byte[1024];
        zos.putNextEntry(zipEntry);
        for (int readNum; (readNum = is.read(buf)) != -1;) {
            zos.write(buf, 0, readNum);
        }
        zos.closeEntry();
        is.close();
    }
}

From source file:org.helios.ember.sftp.FileObjectWrapperCollection.java

/**
 * Creates a new FileObjectWrapperCollection
        /*from ww w . j  a v a  2 s .  c  o m*/
 * @param parent The parent folder
 * @param fileObjects The wrapped file objects to aggregate
 */
public FileObjectWrapperCollection(FileObject parent, FileObjectWrapper... fileObjects) {
    this.parentFolder = parent.getName().getPath();
    this.root = parent.getFileSystem().getRootName().equals(parent.getName());
    this.urlPrefix = parent.getFileSystem().getRootURI();

    if (fileObjects != null) {
        for (FileObjectWrapper fileObject : fileObjects) {
            if (fileObject == null)
                continue;
            try {
                if (FileType.FILE.getName().equals(fileObject.getType())) {
                    files.add(fileObject);
                    totalSize += fileObject.getSize();
                } else if (FileType.FOLDER.getName().equals(fileObject.getType())) {
                    folders.add(fileObject);
                }
            } catch (Exception ex) {
                ex.printStackTrace(System.err);
            }
        }
    }
}