You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

VFS - Frequently asked questions

Is there a tutorial for VFS?

todo: Add link(s) here to tutorials and example code. For example, at the moment I'm looking for a better example of reading a tar file, and extracting and expanding gzip files inside that tar file (than the approach I came up with ExtractAndDecompressGzipFiles).

VfsCookbook - a cookbook has been started

How to enter ftp passive mode

FileSystemOptions opts = new FileSystemOptions();
FtpFileSystemConfigBuilder.getInstance().setPassiveMode(opts, true);
FileObject fo = VFS.getManager().resolveFile("ftp://host/path_to/file.txt", opts);

How to use the org.apache.commons.vfs.FileSelector or org.apache.commons.vfs.FileFilter

The FileFilter can be used to mimic the java.io.FileFilter interface.

FileFilter ff = new FileFilter()
{
    public boolean accept(FileSelectInfo fileInfo)
    {
        FileObject fo = fileInfo.getFile();
        return fo.getName().getBaseName().startsWith("ABC-");
    }
    		
};
VFS.getManager().resolveFile("/base/folder").findFiles(new FileFilterSelector(ff));

You should consider using the more VFS native org.apache.commons.vfs.FileSelector interface as this allows you to automatically traverse recursive.

Available FileSelectors:

So the following will be the same as above, but will scan the whole tree starting at the base folder.

FileSelector ff = new FileSelector()
{
    public boolean includeFile(FileSelectInfo fileInfo) throws Exception
    {
        FileObject fo = fileInfo.getFile();
        return fo.getName().getBaseName().startsWith("ABC-");
    }

    public boolean traverseDescendents(FileSelectInfo fileInfo) throws Exception
    {
        return true;
    }   		
};
VFS.getManager().resolveFile("/base/folder").findFiles(ff);
  • No labels