List of usage examples for org.apache.commons.vfs FileSystemManager resolveFile
public FileObject resolveFile(String name) throws FileSystemException;
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(); }