Example usage for org.apache.commons.vfs FileSystemManager resolveFile

List of usage examples for org.apache.commons.vfs FileSystemManager resolveFile

Introduction

In this page you can find the example usage for org.apache.commons.vfs FileSystemManager resolveFile.

Prototype

public FileObject resolveFile(String name) throws FileSystemException;

Source Link

Document

Locates a file by name.

Usage

From source file:com.pongasoft.util.io.IOUtils.java

/**
 * Wraps the provided file object within a jar file object
 * (ex: <code>createJarFileObject(file:///tmp/foo.jar)</code> will return
 * <code>jar:file:///tmp.foo.jar!/</code>
 *
 * @param fileObject the orginal jar file
 * @return the wrapped file object (note that it the orignial object does not exists, it
 *         is simply returned (as wrapping it throws an exception...)
 * @throws IOException if there is something wrong
 *//*  www .  j  a v  a2 s  .c o m*/
public static FileObject createJarFileObject(FileObject fileObject) throws IOException {
    if (fileObject == null)
        return null;

    if (fileObject.exists()) {
        FileSystemManager fsm = fileObject.getFileSystem().getFileSystemManager();
        return fsm.resolveFile("jar:" + fileObject.getURL() + "!/");
    } else
        return fileObject;
}

From source file:com.threecrickets.sincerity.util.IoUtil.java

/**
 * Copies a file or a complete subdirectory tree using Apache Commons VFS.
 * /*ww  w  .j a  va 2s .  c o m*/
 * @param manager
 *        The file system manager
 * @param file
 *        The source file or directory
 * @param folder
 *        The target folder
 * @throws IOException
 *         In case of an I/O error
 */
public static void copyRecursive(FileSystemManager manager, FileObject file, FileObject folder)
        throws IOException {
    folder.createFolder();
    FileType type = file.getType();
    FileObject target = manager.resolveFile(folder + "/" + file.getName().getBaseName());
    if (type == FileType.FILE)
        org.apache.commons.vfs.FileUtil.copyContent(file, target);
    else if (type == FileType.FOLDER) {
        for (FileObject child : file.getChildren())
            copyRecursive(manager, child, target);
    }
}

From source file:com.bedatadriven.renjin.appengine.AppEngineContextFactory.java

public static Context createTopLevelContext(ServletContext servletContext) {
    FileSystemManager fileSystemManager;
    try {/*from  www  . j  a va  2  s  .c om*/
        fileSystemManager = createFileSystemManager(servletContext);
    } catch (FileSystemException e) {
        LOG.log(Level.SEVERE, "Failed to initialize VFS file system manager", e);
        throw new RuntimeException(e);
    }
    try {

        // initialize our master context here; a fresh but shallow copy will
        // be forked on each incoming request
        Context context = Context.newTopLevelContext(fileSystemManager, findHomeDirectory(servletContext),
                fileSystemManager.resolveFile("file:///"));
        context.getGlobals().setLibraryPaths(computeLibraryPaths(fileSystemManager, servletContext));
        context.init();
        return context;
    } catch (IOException e) {
        LOG.log(Level.SEVERE, "Failed to initialize master context", e);
        throw new RuntimeException(e);
    }
}

From source file:com.bedatadriven.renjin.appengine.AppEngineLocalFilesSystemProviderTest.java

@Test
public void test() throws FileSystemException {

    File basePath = new File(getClass().getResource("/jarfiletest.jar").getFile()).getParentFile();

    FileSystemManager dfsm = AppEngineContextFactory
            .createFileSystemManager(new AppEngineLocalFilesSystemProvider(basePath));

    FileObject jarFile = dfsm.resolveFile("/jarfiletest.jar");
    assertThat(jarFile.getName().getURI(), equalTo("file:///jarfiletest.jar"));
    assertThat(jarFile.exists(), equalTo(true));

    FileObject jarRoot = dfsm.resolveFile("jar:file:///jarfiletest.jar!/r/library");
    assertThat(jarRoot.exists(), equalTo(true));
    assertThat(jarRoot.getType(), equalTo(FileType.FOLDER));
    assertThat(jarRoot.getChildren().length, equalTo(1));
}

From source file:com.github.lucapino.sheetmaker.parsers.mediainfo.MediaInfoRetriever.java

@Override
public MovieInfo getMovieInfo(String filePath) {
    MediaInfo mediaInfo = new MediaInfo();
    String fileToParse = filePath;
    // test if we have iso
    if (filePath.toLowerCase().endsWith("iso")) {
        // open iso and parse the ifo files
        Map<Integer, String> ifoFiles = new TreeMap<>();
        try {/*from   w w w  . j  ava 2  s.  c o  m*/
            FileSystemManager fsManager = VFS.getManager();
            FileObject fo = fsManager.resolveFile("iso:" + filePath + "!/");
            // create an ifo file selector
            FileSelector ifoFs = new FileFilterSelector(new FileFilter() {

                @Override
                public boolean accept(FileSelectInfo fsi) {
                    return fsi.getFile().getName().getBaseName().toLowerCase().endsWith("ifo");
                }
            });
            FileObject[] files = fo.getChild("VIDEO_TS").findFiles(ifoFs);
            for (FileObject file : files) {
                File tmpFile = new File(
                        System.getProperty("java.io.tmpdir") + File.separator + file.getName().getBaseName());
                System.out.println(file.getName().getBaseName());
                IOUtils.copy(file.getContent().getInputStream(), new FileOutputStream(tmpFile));
                mediaInfo.Open(tmpFile.getAbsolutePath());
                String format = mediaInfo.Get(MediaInfo.StreamKind.General, 0, "Format_Profile",
                        MediaInfo.InfoKind.Text, MediaInfo.InfoKind.Name);
                System.out.println("Format profile: " + format);
                // if format is "Program" -> it's a video file
                if (format.equalsIgnoreCase("program")) {
                    String duration = mediaInfo.Get(MediaInfo.StreamKind.General, 0, "Duration",
                            MediaInfo.InfoKind.Text, MediaInfo.InfoKind.Name);
                    System.out.println("Duration: " + duration);
                    ifoFiles.put(Integer.valueOf(duration), tmpFile.getName());
                }
                mediaInfo.Close();
            }
            if (!ifoFiles.isEmpty()) {
                if (ifoFiles.size() == 1) {
                    fileToParse = ifoFiles.values().iterator().next();
                } else {
                    // get the last entry -> the bigger one
                    Set<Integer> keys = ifoFiles.keySet();
                    Iterator<Integer> iterator = keys.iterator();
                    for (int i = 0; i < keys.size(); i++) {
                        String fileName = ifoFiles.get(iterator.next());
                        if (i == keys.size() - 1) {
                            fileToParse = fileName;
                        } else {
                            new File(fileName).delete();
                        }
                    }
                }
            }
        } catch (IOException | NumberFormatException ex) {

        }
    }
    // here fileToParse is correct
    mediaInfo.Open(fileToParse);
    System.out.println(mediaInfo.Inform());

    return new MovieInfoImpl(mediaInfo, filePath);
}

From source file:functionalTests.vfsprovider.TestProActiveProvider.java

public FileObject getBaseTestFolder(FileSystemManager fs) throws Exception {
    final String vfsRootURL = deployer.getVFSRootURL();
    return fs.resolveFile(vfsRootURL);
}

From source file:com.newatlanta.appengine.junit.vfs.provider.GaeProviderTestCase.java

/**
  * Returns the base folder for tests. Copies test files from the local file
  * system to GaeVFS. Note that SVN (.svn) folders are not copied; if the are,
  * then the size of the LRUFilesCache created within GaeFileSystemManager.prepare()
  * must be increased to avoid testcase failures.
  *//*from  w  w w .j  av a 2 s.c om*/
@Override
public FileObject getBaseTestFolder(FileSystemManager manager) throws Exception {
    FileObject gaeTestBaseDir = manager.getBaseFile().resolveFile("test-data");
    if (!gaeTestBaseDir.exists()) {
        FileObject localTestBaseDir = manager
                .resolveFile("file://" + GaeFileNameParser.getRootPath(manager.getBaseFile().getName())
                        + gaeTestBaseDir.getName().getPath());
        gaeTestBaseDir.copyFrom(localTestBaseDir, new TestFileSelector());
        // confirm that the correct number of files were copied
        FileObject[] testFiles = localTestBaseDir.findFiles(new TestFileSelector());
        FileObject[] gaeFiles = gaeTestBaseDir.findFiles(Selectors.SELECT_FILES);
        assertEquals(testFiles.length, gaeFiles.length);
    }
    return gaeTestBaseDir;
}

From source file:com.github.stephenc.javaisotools.iso9660.impl.CreateISOTest.java

@Test
public void canOpenFakeIso() throws Exception {
    final String contentString = "This is a text file, not an iso";
    // Output file
    File fakeIso = new File(workDir, "fake.iso");
    OutputStream os = new FileOutputStream(fakeIso);
    IOUtil.copy(contentString, os);/*www.j a  va2  s  .  c o  m*/
    IOUtil.close(os);

    // Trying to open a fake iso
    FileSystemManager fsManager = VFS.getManager();
    FileObject fo = fsManager.resolveFile("iso:" + fakeIso.getPath() + "!/");
    assertFalse("The file '" + fakeIso.getName() + "' is not a valid iso file", fo.exists());
}

From source file:com.github.stephenc.javaisotools.iso9660.impl.CreateISOTest.java

@Test
public void canCreateAnIsoWithSomeFiles() throws Exception {
    // Output file
    File outfile = new File(workDir, "test.iso");
    File contentsA = new File(workDir, "a.txt");
    OutputStream os = new FileOutputStream(contentsA);
    IOUtil.copy("Hello", os);
    IOUtil.close(os);/*from   w ww .  ja v  a 2 s  . c o m*/
    File contentsB = new File(workDir, "b.txt");
    os = new FileOutputStream(contentsB);
    IOUtil.copy("Goodbye", os);
    IOUtil.close(os);

    // Directory hierarchy, starting from the root
    ISO9660RootDirectory.MOVED_DIRECTORIES_STORE_NAME = "rr_moved";
    ISO9660RootDirectory root = new ISO9660RootDirectory();

    ISO9660Directory dir = root.addDirectory("root");
    dir.addFile(contentsA);
    dir.addFile(contentsB);

    StreamHandler streamHandler = new ISOImageFileHandler(outfile);
    CreateISO iso = new CreateISO(streamHandler, root);
    ISO9660Config iso9660Config = new ISO9660Config();
    iso9660Config.allowASCII(false);
    iso9660Config.setInterchangeLevel(2);
    iso9660Config.restrictDirDepthTo8(true);
    iso9660Config.setVolumeID("ISO Test");
    iso9660Config.forceDotDelimiter(true);
    RockRidgeConfig rrConfig = new RockRidgeConfig();
    rrConfig.setMkisofsCompatibility(true);
    rrConfig.hideMovedDirectoriesStore(true);
    rrConfig.forcePortableFilenameCharacterSet(true);

    JolietConfig jolietConfig = new JolietConfig();
    jolietConfig.setVolumeID("Joliet Test");
    jolietConfig.forceDotDelimiter(true);

    iso.process(iso9660Config, rrConfig, jolietConfig, null);

    assertThat(outfile.isFile(), is(true));
    assertThat(outfile.length(), not(is(0L)));

    FileSystemManager fsManager = VFS.getManager();
    FileObject isoFile = fsManager.resolveFile("iso:" + outfile.getPath() + "!/root");

    FileObject t = isoFile.getChild("a.txt");
    assertThat(t, CoreMatchers.<Object>notNullValue());
    assertThat(t.getType(), is(FileType.FILE));
    assertThat(t.getContent().getSize(), is(5L));
    assertThat(IOUtil.toString(t.getContent().getInputStream()), is("Hello"));
    t = isoFile.getChild("b.txt");
    assertThat(t, CoreMatchers.<Object>notNullValue());
    assertThat(t.getType(), is(FileType.FILE));
    assertThat(t.getContent().getSize(), is(7L));
    assertThat(IOUtil.toString(t.getContent().getInputStream()), is("Goodbye"));
}

From source file:net.sf.jvifm.ui.ZipLister.java

private void initData() {
    try {//  w w  w .j  a  va2 s. c o  m
        FileSystemManager fsManager = VFS.getManager();
        currentFileObject = fsManager.resolveFile("jar://" + filename);
        textLocation.setText(currentFileObject.getName().getPath());

    } catch (Exception e) {
        e.printStackTrace();
    }
    changeCurrentNode();

}