List of usage examples for org.apache.commons.vfs FileSystemManager resolveFile
public FileObject resolveFile(String name) throws FileSystemException;
From source file:com.fer.hr.service.datasource.ClassPathResourceDatasourceManager.java
private void setPath(String path) { FileSystemManager fileSystemManager; try {/*from ww w. j a v a2s . c o m*/ fileSystemManager = VFS.getManager(); FileObject fileObject; fileObject = fileSystemManager.resolveFile(path); if (fileObject == null) { throw new IOException("File cannot be resolved: " + path); } if (!fileObject.exists()) { throw new IOException("File does not exist: " + path); } repoURL = fileObject.getURL(); if (repoURL == null) { throw new Exception("Cannot load connection repository from path: " + path); } else { load(); } } catch (Exception e) { e.printStackTrace(); } }
From source file:com.github.stephenc.javaisotools.iso9660.impl.CreateISOTest.java
@Test public void canCreateAnIsoWithLoadsOfFiles() throws Exception { final int numFiles = entropy.nextInt(50) + 50; // Output file File outfile = new File(workDir, "big.iso"); File rootDir = new File(workDir, "big"); assertThat(rootDir.isDirectory() || rootDir.mkdirs(), is(true)); // Directory hierarchy, starting from the root ISO9660RootDirectory.MOVED_DIRECTORIES_STORE_NAME = "rr_moved"; ISO9660RootDirectory root = new ISO9660RootDirectory(); for (int i = 0; i < numFiles; i++) { File content = new File(rootDir, Integer.toString(i) + ".bin"); int length = entropy.nextInt(1024 * 10 + 1); byte[] contents = new byte[length]; entropy.nextBytes(contents);//from w w w. j a v a 2 s .co m FileOutputStream fos = null; try { fos = new FileOutputStream(content); fos.write(contents); } finally { IOUtil.close(fos); } root.addFile(content); } 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(); for (int i = 0; i < numFiles; i++) { File content = new File(rootDir, Integer.toString(i) + ".bin"); FileObject t = fsManager.resolveFile("iso:" + outfile.getPath() + "!/" + Integer.toString(i) + ".bin"); assertThat(t, CoreMatchers.<Object>notNullValue()); assertThat(t.getType(), is(FileType.FILE)); assertThat(t.getContent().getSize(), is(content.length())); assertThat(IOUtil.toByteArray(t.getContent().getInputStream()), is(IOUtil.toByteArray(new FileInputStream(content)))); } }
From source file:com.panet.imeta.core.vfs.KettleVFS.java
public static FileObject getFileObject(String vfsFilename) throws IOException { checkHook();//from ww w . j a v a 2s . co m try { FileSystemManager fsManager = VFS.getManager(); // We have one problem with VFS: if the file is in a subdirectory of the current one: somedir/somefile // In that case, VFS doesn't parse the file correctly. // We need to put file: in front of it to make it work. // However, how are we going to verify this? // // We are going to see if the filename starts with one of the known protocols like file: zip: ram: smb: jar: etc. // If not, we are going to assume it's a file. // boolean relativeFilename = true; String[] schemes = VFS.getManager().getSchemes(); for (int i = 0; i < schemes.length && relativeFilename; i++) { if (vfsFilename.startsWith(schemes[i] + ":")) relativeFilename = false; } String filename; if (vfsFilename.startsWith("\\\\")) { File file = new File(vfsFilename); filename = file.toURI().toString(); } else { if (relativeFilename) { File file = new File(vfsFilename); filename = file.getAbsolutePath(); } else { filename = vfsFilename; } } FileObject fileObject = fsManager.resolveFile(filename); return fileObject; } catch (IOException e) { throw new IOException( "Unable to get VFS File object for filename '" + vfsFilename + "' : " + e.toString()); } }
From source file:com.newatlanta.appengine.vfs.provider.GaeFileObject.java
/** * Override the superclass implementation to make sure GaeVFS "shadows" * exist for local directories./*from w ww. j av a 2s .c om*/ */ @Override public FileObject getParent() throws FileSystemException { FileObject parent = super.getParent(); if ((parent != null) && !parent.exists()) { // check for existing local directory FileSystemManager manager = getFileSystem().getFileSystemManager(); FileObject localDir = manager.resolveFile("file://" + GaeFileNameParser.getRootPath(manager.getBaseFile().getName()) + parent.getName().getPath()); if (localDir.exists() && localDir.getType().hasChildren()) { parent.createFolder(); // make sure GaeVFS "shadow" folder exists } } return parent; }
From source file:com.github.stephenc.javaisotools.iso9660.impl.CreateISOTest.java
@Test public void canCreateAnIsoWithOneFile() throws Exception { final String contentString = "This is a test file"; // Output file File outfile = new File(workDir, "one-file.iso"); File contents = new File(workDir, "readme.txt"); OutputStream os = new FileOutputStream(contents); IOUtil.copy(contentString, os);// w ww .j a va 2s . c o m IOUtil.close(os); // Directory hierarchy, starting from the root ISO9660RootDirectory.MOVED_DIRECTORIES_STORE_NAME = "rr_moved"; ISO9660RootDirectory root = new ISO9660RootDirectory(); root.addFile(contents); StreamHandler streamHandler = new ISOImageFileHandler(outfile); CreateISO iso = new CreateISO(streamHandler, root); ISO9660Config iso9660Config = new ISO9660Config(); iso9660Config.allowASCII(false); iso9660Config.setInterchangeLevel(1); iso9660Config.restrictDirDepthTo8(true); iso9660Config.setVolumeID("ISO Test"); iso9660Config.forceDotDelimiter(true); RockRidgeConfig rrConfig = new RockRidgeConfig(); rrConfig.setMkisofsCompatibility(false); 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(); // TODO figure out why we can't just do // FileObject isoFile = fsManager.resolveFile("iso:" + outfile.getPath() + "!/"); // smells like a bug between loop-fs and commons-vfs FileObject isoFile = fsManager.resolveFile("iso:" + outfile.getPath() + "!/readme.txt").getParent(); assertThat(isoFile.getType(), is(FileType.FOLDER)); FileObject[] children = isoFile.getChildren(); assertThat(children.length, is(1)); assertThat(children[0].getName().getBaseName(), is("readme.txt")); assertThat(children[0].getType(), is(FileType.FILE)); assertThat(IOUtil.toString(children[0].getContent().getInputStream()), is(contentString)); }
From source file:egovframework.rte.fdl.filehandling.FilehandlingServiceTest.java
@Test public void testUserAuthentication() throws Exception { StaticUserAuthenticator auth = new StaticUserAuthenticator(null, "username", "password"); FileSystemOptions opts = new FileSystemOptions(); DefaultFileSystemConfigBuilder.getInstance().setUserAuthenticator(opts, auth); FileSystemManager manager = VFS.getManager(); FileObject baseDir = manager.resolveFile(System.getProperty("user.dir")); FileObject file = manager.resolveFile(baseDir, "testfolder/file1.txt"); FileObject fo = manager.resolveFile("d:" + file.getName().getPath(), opts); fo.createFile();/*from w ww . ja va 2s . com*/ }
From source file:egovframework.rte.fdl.filehandling.FilehandlingServiceTest.java
/** * ? ?? ? ? ? ? ?? ?./*from w ww . j a v a 2 s.co m*/ * @throws Exception */ @Test public void testCeateFile() throws Exception { FileSystemManager manager = VFS.getManager(); FileObject baseDir = manager.resolveFile(System.getProperty("user.dir")); final FileObject file = manager.resolveFile(baseDir, "testfolder/file1.txt"); // ? file.delete(Selectors.SELECT_FILES); assertFalse(file.exists()); // ? ? file.createFile(); assertTrue(file.exists()); }
From source file:com.sonatype.nexus.plugin.groovyconsole.DefaultScriptStorage.java
public void initialize() throws InitializationException { scripts = new LinkedHashMap<String, String>(); FileObject listendir;//from www .j av a 2 s . c o m try { FileSystemManager fsManager = VFS.getManager(); scriptDir = applicationConfiguration.getWorkingDirectory("scripts"); if (!scriptDir.exists()) { scriptDir.mkdirs(); try { new File(scriptDir, "place your .groovy files here.txt").createNewFile(); } catch (IOException e) { throw new InitializationException(e.getMessage(), e); } } listendir = fsManager.resolveFile(scriptDir.getAbsolutePath()); } catch (FileSystemException e) { throw new InitializationException(e.getMessage(), e); } FileSelector selector = new FileSelector() { public boolean traverseDescendents(FileSelectInfo arg0) throws Exception { return true; } public boolean includeFile(FileSelectInfo arg0) throws Exception { return isScriptFile(arg0.getFile()); } }; try { FileObject[] availableScripts = listendir.findFiles(selector); for (FileObject fileObject : availableScripts) { updateScript(fileObject); } } catch (FileSystemException e) { getLogger().warn("Unable to perform initial directory scan.", e); } DefaultFileMonitor fm = new DefaultFileMonitor(this); fm.setRecursive(true); fm.addFile(listendir); fm.start(); this.fileMonitor = fm; }
From source file:egovframework.rte.fdl.filehandling.FilehandlingServiceTest.java
/** * ? ? , ? ?? ?? ?//from w w w . ja v a2 s . com * ? ? ? ? . * @throws Exception */ @Test public void testCaching() throws Exception { String testFolder = "d:/workspace/java/e-gov/eGovFramework/RTE/DEV/trunk/Foundation/egovframework.rte.fdl.filehandling/testfolder"; FileSystemManager manager = VFS.getManager(); FileObject scratchFolder = manager.resolveFile(testFolder); // testfolder ? ? scratchFolder.delete(Selectors.EXCLUDE_SELF); // ? Manager ? DefaultFileSystemManager fs = new DefaultFileSystemManager(); fs.setFilesCache(manager.getFilesCache()); // zip, jar, tgz, tar, tbz2, file if (!fs.hasProvider("file")) { fs.addProvider("file", new DefaultLocalFileProvider()); } fs.setCacheStrategy(CacheStrategy.ON_RESOLVE); fs.init(); // ? ? ? FileObject foBase2 = fs.resolveFile(testFolder); log.debug("## scratchFolder.getName().getPath() : " + scratchFolder.getName().getPath()); FileObject cachedFolder = foBase2.resolveFile(scratchFolder.getName().getPath()); // ?? ? FileObject[] fos = cachedFolder.getChildren(); assertFalse(contains(fos, "file1.txt")); // ?? scratchFolder.resolveFile("file1.txt").createFile(); // ? // BUT cachedFolder ? ?? ? fos = cachedFolder.getChildren(); assertFalse(contains(fos, "file1.txt")); // cachedFolder.refresh(); // ?? fos = cachedFolder.getChildren(); assertTrue(contains(fos, "file1.txt")); }
From source file:egovframework.rte.fdl.filehandling.FilehandlingServiceTest.java
/** * ? ?? ? ? .//from ww w.jav a2s. c om * ? ? ? ?? ?. * @throws Exception */ @Test public void testAccessFile() throws Exception { FileSystemManager manager = VFS.getManager(); FileObject baseDir = manager.resolveFile(System.getProperty("user.dir")); FileObject file = manager.resolveFile(baseDir, "testfolder/file1.txt"); // ? file.delete(Selectors.SELECT_FILES); assertFalse(file.exists()); // ? ? file.createFile(); assertTrue(file.exists()); FileContent fileContent = file.getContent(); assertEquals(0, fileContent.getSize()); // ? String string = "test."; OutputStream os = fileContent.getOutputStream(); try { os.write(string.getBytes()); os.flush(); } catch (Exception e) { throw new Exception(e); } finally { os.close(); } assertNotSame(0, fileContent.getSize()); // ? ? StringBuffer sb = new StringBuffer(); FileObject writtenFile = manager.resolveFile(baseDir, "testfolder/file1.txt"); FileContent writtenContents = writtenFile.getContent(); InputStream is = writtenContents.getInputStream(); try { BufferedReader reader = new BufferedReader(new InputStreamReader(is)); for (String line = ""; (line = reader.readLine()) != null; sb.append(line)) ; } catch (Exception e) { throw new Exception(e); } finally { is.close(); } // ? ? assertEquals(sb.toString(), string); }