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

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

Introduction

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

Prototype

public FileObject[] findFiles(FileSelector selector) throws FileSystemException;

Source Link

Document

Finds the set of matching descendents of this file, in depthwise order.

Usage

From source file:com.newatlanta.appengine.junit.vfs.gae.GaeFolderTestCase.java

private static void assertSubFolders(FileObject testFolder, String[] subFolderNames) throws Exception {
    FileName rootName = testFolder.getFileSystem().getRootName();
    FileObject[] subFolders = testFolder.findFiles(Selectors.EXCLUDE_SELF);
    assertEquals(subFolders.length, subFolderNames.length);
    for (int i = 0; i < subFolders.length; i++) {
        FileObject subObject = subFolders[i];
        assertTrue(subObject.getName().getPath().endsWith(subFolderNames[i]));
        assertFolder(subObject);/* w w w.ja  v a  2s .com*/
        assertEquals(subObject.getParent(), i == subFolders.length - 1 ? testFolder : subFolders[i + 1]);
        assertTrue(rootName.isDescendent(subObject.getName()));
        assertTrue(subObject.getName().isAncestor(rootName));
    }
}

From source file:com.panet.imeta.core.fileinput.FileInputList.java

public static FileInputList createFileList(VariableSpace space, String[] fileName, String[] fileMask,
        String[] fileRequired, boolean[] includeSubdirs, FileTypeFilter[] fileTypeFilters) {
    FileInputList fileInputList = new FileInputList();

    // Replace possible environment variables...
    final String realfile[] = space.environmentSubstitute(fileName);
    final String realmask[] = space.environmentSubstitute(fileMask);

    for (int i = 0; i < realfile.length; i++) {
        final String onefile = realfile[i];
        final String onemask = realmask[i];

        final boolean onerequired = YES.equalsIgnoreCase(fileRequired[i]);
        final boolean subdirs = includeSubdirs[i];
        final FileTypeFilter filter = ((fileTypeFilters == null || fileTypeFilters[i] == null)
                ? FileTypeFilter.ONLY_FILES
                : fileTypeFilters[i]);/*  www .j ava  2  s  .com*/

        if (Const.isEmpty(onefile))
            continue;

        // 
        // If a wildcard is set we search for files
        //
        if (!Const.isEmpty(onemask)) {
            try {
                // Find all file names that match the wildcard in this directory
                //
                FileObject directoryFileObject = KettleVFS.getFileObject(onefile);
                if (directoryFileObject != null && directoryFileObject.getType() == FileType.FOLDER) // it's a directory
                {
                    FileObject[] fileObjects = directoryFileObject.findFiles(new AllFileSelector() {
                        public boolean traverseDescendents(FileSelectInfo info) {
                            return info.getDepth() == 0 || subdirs;
                        }

                        public boolean includeFile(FileSelectInfo info) {
                            // Never return the parent directory of a file list.
                            if (info.getDepth() == 0) {
                                return false;
                            }

                            FileObject fileObject = info.getFile();
                            try {
                                if (fileObject != null && filter.isFileTypeAllowed(fileObject.getType())) {
                                    String name = fileObject.getName().getBaseName();
                                    boolean matches = Pattern.matches(onemask, name);
                                    /*
                                    if (matches)
                                    {
                                        System.out.println("File match: URI: "+info.getFile()+", name="+name+", depth="+info.getDepth());
                                    }
                                    */
                                    return matches;
                                }
                                return false;
                            } catch (FileSystemException ex) {
                                // Upon error don't process the file.
                                return false;
                            }
                        }
                    });
                    if (fileObjects != null) {
                        for (int j = 0; j < fileObjects.length; j++) {
                            if (fileObjects[j].exists())
                                fileInputList.addFile(fileObjects[j]);
                        }
                    }
                    if (Const.isEmpty(fileObjects)) {
                        if (onerequired)
                            fileInputList.addNonAccessibleFile(directoryFileObject);
                    }

                    // Sort the list: quicksort, only for regular files
                    fileInputList.sortFiles();
                } else {
                    FileObject[] children = directoryFileObject.getChildren();
                    for (int j = 0; j < children.length; j++) {
                        // See if the wildcard (regexp) matches...
                        String name = children[j].getName().getBaseName();
                        if (Pattern.matches(onemask, name))
                            fileInputList.addFile(children[j]);
                    }
                    // We don't sort here, keep the order of the files in the archive.
                }
            } catch (Exception e) {
                LogWriter.getInstance().logError("FileInputList", Const.getStackTracker(e));
            }
        } else
        // A normal file...
        {
            try {
                FileObject fileObject = KettleVFS.getFileObject(onefile);
                if (fileObject.exists()) {
                    if (fileObject.isReadable()) {
                        fileInputList.addFile(fileObject);
                    } else {
                        if (onerequired)
                            fileInputList.addNonAccessibleFile(fileObject);
                    }
                } else {
                    if (onerequired)
                        fileInputList.addNonExistantFile(fileObject);
                }
            } catch (Exception e) {
                LogWriter.getInstance().logError("FileInputList", Const.getStackTracker(e));
            }
        }
    }

    return fileInputList;
}

From source file:com.panet.imeta.core.fileinput.FileInputList.java

public static FileInputList createFolderList(VariableSpace space, String[] folderName,
        String[] folderRequired) {
    FileInputList fileInputList = new FileInputList();

    // Replace possible environment variables...
    final String realfolder[] = space.environmentSubstitute(folderName);

    for (int i = 0; i < realfolder.length; i++) {
        final String onefile = realfolder[i];
        final boolean onerequired = YES.equalsIgnoreCase(folderRequired[i]);
        final boolean subdirs = true;
        final FileTypeFilter filter = FileTypeFilter.ONLY_FOLDERS;

        if (Const.isEmpty(onefile))
            continue;
        FileObject directoryFileObject = null;

        try {/*from w  w  w  .  jav  a 2s .  c o  m*/
            // Find all folder names  in this directory
            //
            directoryFileObject = KettleVFS.getFileObject(onefile);
            if (directoryFileObject != null && directoryFileObject.getType() == FileType.FOLDER) // it's a directory
            {

                FileObject[] fileObjects = directoryFileObject.findFiles(new AllFileSelector() {
                    public boolean traverseDescendents(FileSelectInfo info) {
                        return info.getDepth() == 0 || subdirs;
                    }

                    public boolean includeFile(FileSelectInfo info) {
                        // Never return the parent directory of a file list.
                        if (info.getDepth() == 0) {
                            return false;
                        }

                        FileObject fileObject = info.getFile();
                        try {
                            if (fileObject != null && filter.isFileTypeAllowed(fileObject.getType())) {
                                return true;
                            }
                            return false;
                        } catch (FileSystemException ex) {
                            // Upon error don't process the file.
                            return false;
                        }
                    }
                });
                if (fileObjects != null) {
                    for (int j = 0; j < fileObjects.length; j++) {
                        if (fileObjects[j].exists())
                            fileInputList.addFile(fileObjects[j]);
                    }
                }
                if (Const.isEmpty(fileObjects)) {
                    if (onerequired)
                        fileInputList.addNonAccessibleFile(directoryFileObject);
                }

                // Sort the list: quicksort, only for regular files
                fileInputList.sortFiles();
            } else {
                if (onerequired && !directoryFileObject.exists())
                    fileInputList.addNonExistantFile(directoryFileObject);
            }
        } catch (Exception e) {
            LogWriter.getInstance().logError("FileInputList", Const.getStackTracker(e));
        } finally {
            try {
                if (directoryFileObject != null)
                    directoryFileObject.close();
                directoryFileObject = null;
            } catch (Exception e) {
            }
            ;
        }
    }

    return fileInputList;
}

From source file:com.pongasoft.kiwidoc.builder.bytecode.ByteCodeParser.java

public void parseClasses(LibraryModelBuilder library, FileObject classesResource) throws IOException {
    FileObject[] classes = classesResource.findFiles(ClassFileSelector.INSTANCE);

    // TODO MED YP: handle inner classes (classModelBuilder.addInnerClass...)  
    if (classes != null) {
        for (FileObject classResource : classes) {
            ClassModelBuilder classModelBuilder;

            InputStream is = classResource.getContent().getInputStream();
            try {
                ClassReader reader = new ClassReader(new BufferedInputStream(is));
                KiwidocClassVisitor classParser = new KiwidocClassVisitor();
                reader.accept(classParser, 0);
                classModelBuilder = classParser.getClassModel();
            } finally {
                is.close();/* w w  w.  j av  a  2s  .co m*/
            }

            library.addClass(classModelBuilder);
        }
    }
}

From source file:com.thinkberg.moxo.vfs.s3.S3FileProviderTest.java

public void testGetDirectoryListing() throws FileSystemException {
    FileObject object = VFS.getManager().resolveFile(ROOT + "/Sites/Sites/images");
    FileObject[] files = object.findFiles(new DepthFileSelector(1));
    for (FileObject file : files) {
        System.out.println("Found file: " + file.getName().getPath());
    }/*from   www.  ja  va  2  s .  c  o m*/
    assertEquals(4, files.length);
}

From source file:com.pongasoft.kiwidoc.builder.RepositoryContentHandler.java

/**
 * Loads the content of the given resource.
 *
 * @param resource the resource to load//  w w  w.  j  a va2 s.  c o  m
 * @return the content as an object since it depends on which content is being read (ex: manifest,
 *         library, packages, class) (never <code>null</code>)
 * @throws NoSuchContentException if the content does not exist
 * @throws StoreException         if there is a problem reading the content.
 */
public RepositoryModel loadContent(RepositoryResource resource) throws NoSuchContentException, StoreException {
    if (resource == null)
        throw new NoSuchContentException(resource);

    Collection<LibraryVersionResource> lvc = new ArrayList<LibraryVersionResource>();

    FileObject root = getResourceFile(resource);

    try {
        FileObject[] organisations = root.findFiles(_fileSelector);

        for (FileObject organisation : organisations) {
            if (organisation.getType() == FileType.FOLDER) {
                OrganisationResource organisationResource = new OrganisationResource(
                        organisation.getName().getBaseName());

                FileObject[] libraries = organisation.getChildren();
                for (FileObject library : libraries) {
                    LibraryResource libraryResource = new LibraryResource(organisationResource,
                            library.getName().getBaseName());

                    FileObject[] libraryVersions = library.getChildren();
                    for (FileObject libraryVersion : libraryVersions) {
                        lvc.add(new LibraryVersionResource(libraryResource,
                                libraryVersion.getName().getBaseName()));
                    }
                }

            }
        }
    } catch (FileSystemException e) {
        throw new StoreException(e);
    }

    return new RepositoryModel(lvc);
}

From source file:com.newatlanta.appengine.junit.vfs.gae.GaeFolderTestCase.java

private void testFindFiles(FileObject rootObject) throws Exception {
    FileObject[] findFiles = rootObject.findFiles(Selectors.EXCLUDE_SELF);
    findFiles = rootObject.findFiles(Selectors.SELECT_ALL);
    findFiles = rootObject.findFiles(Selectors.SELECT_CHILDREN);
    findFiles = rootObject.findFiles(Selectors.SELECT_FILES);
    findFiles = rootObject.findFiles(Selectors.SELECT_FOLDERS);
    findFiles = rootObject.findFiles(Selectors.SELECT_SELF);
    findFiles = rootObject.findFiles(Selectors.SELECT_SELF_AND_CHILDREN);
}

From source file:com.thinkberg.vfs.s3.tests.S3FileProviderTest.java

public void testFileSystemIsEmpty() throws FileSystemException {
    FileObject object = ROOT.resolveFile("/");
    assertEquals(1, object.findFiles(ALL_FILE_SELECTOR).length);
}

From source file:com.thinkberg.webdav.PropFindHandler.java

/**
 * Create a multistatus response by requesting all properties and writing a response for each
 * the found and the non-found properties
 *
 * @param object  the context object the propfind request applies to
 * @param propEl  the &lt;prop&gt; element containing the actual properties
 * @param baseUrl the base url of this server
 * @param depth   a depth argument for how deep the find will go
 * @return an XML document that is the response
 * @throws FileSystemException if there was an error executing the propfind request
 *//*  www  .j ava  2 s . c o m*/
private Document getMultiStatusResponse(FileObject object, Element propEl, URL baseUrl, int depth)
        throws FileSystemException {
    Document propDoc = DocumentHelper.createDocument();
    propDoc.setXMLEncoding("UTF-8");

    Element multiStatus = propDoc.addElement(TAG_MULTISTATUS, NAMESPACE_DAV);
    FileObject[] children = object.findFiles(new DepthFileSelector(depth));
    for (FileObject child : children) {
        Element responseEl = multiStatus.addElement(TAG_RESPONSE);
        try {
            URL url = new URL(baseUrl, URLEncoder.encode(child.getName().getPath(), "UTF-8"));
            responseEl.addElement(TAG_HREF).addText(url.toExternalForm());
        } catch (Exception e) {
            LOG.error("can't set href in response", e);
        }
        DavResource resource = DavResourceFactory.getInstance().getDavResource(child);
        resource.getPropertyValues(responseEl, propEl);
    }
    return propDoc;
}

From source file:com.thinkberg.moxo.dav.PropFindHandler.java

private Document getMultiStatusRespons(FileObject object, List<String> requestedProperties, URL baseUrl,
        int depth, boolean ignoreValues) throws FileSystemException {
    Document propDoc = DocumentHelper.createDocument();
    propDoc.setXMLEncoding("UTF-8");

    Element multiStatus = propDoc.addElement(TAG_MULTISTATUS, "DAV:");
    FileObject[] children = object.findFiles(new DepthFileSelector(depth));
    for (FileObject child : children) {
        Element responseEl = multiStatus.addElement(TAG_RESPONSE);
        try {/*  w  w  w. j ava2 s.c  om*/
            URL url = new URL(baseUrl, URLEncoder.encode(child.getName().getPath(), "UTF-8"));
            log("!! " + url);
            responseEl.addElement(TAG_HREF).addText(url.toExternalForm());
        } catch (Exception e) {
            e.printStackTrace();
        }
        DavResource resource = DavResourceFactory.getInstance().getDavResource(child);
        resource.setIgnoreValues(ignoreValues);
        resource.serializeToXml(responseEl, requestedProperties);
    }
    return propDoc;
}