List of usage examples for org.apache.commons.vfs FileObject getChildren
public FileObject[] getChildren() throws FileSystemException;
From source file:com.pongasoft.kiwidoc.builder.RepositoryContentHandler.java
/** * Loads the content of the given resource. * * @param resource the resource to load//from ww w .j a va2 s.co 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.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 w w .j a va2s .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:com.thinkberg.vfs.s3.tests.S3FileProviderTest.java
public void testGetFolderListingIsShallow() throws FileSystemException { FileObject object = ROOT.resolveFile(FOLDER); FileObject subFolder = object.resolveFile("subdir"); subFolder.createFolder();/* w w w.ja va 2s.c o m*/ subFolder.resolveFile("subfile.0").createFile(); subFolder.resolveFile("subfile.1").createFile(); subFolder.resolveFile("subfile.2").createFile(); assertEquals(3, object.getChildren().length); }
From source file:com.thinkberg.vfs.s3.tests.S3FileProviderTest.java
public void testMoveShallowFolder() throws FileSystemException { FileObject origFolder = ROOT.resolveFile(FOLDER); origFolder.delete(ALL_FILE_SELECTOR); origFolder.createFolder();// w w w . j a va2 s . c o m origFolder.resolveFile("file.0").createFile(); origFolder.resolveFile("file.1").createFile(); origFolder.resolveFile("file.2").createFile(); assertEquals(3, origFolder.getChildren().length); FileObject destFolder = ROOT.resolveFile(FOLDER + "_dest"); destFolder.delete(ALL_FILE_SELECTOR); assertFalse(destFolder.exists()); origFolder.moveTo(destFolder); assertFalse(origFolder.exists()); assertTrue(destFolder.exists()); assertEquals(3, destFolder.getChildren().length); destFolder.delete(ALL_FILE_SELECTOR); assertFalse(origFolder.exists()); assertFalse(destFolder.exists()); }
From source file:com.thinkberg.vfs.s3.tests.S3FileProviderTest.java
public void testCopyShallowFolder() throws FileSystemException { FileObject origFolder = ROOT.resolveFile(FOLDER); origFolder.delete(ALL_FILE_SELECTOR); origFolder.createFolder();/*from w ww . j av a2 s. c om*/ origFolder.resolveFile("file.0").createFile(); origFolder.resolveFile("file.1").createFile(); origFolder.resolveFile("file.2").createFile(); System.out.println(Arrays.asList(origFolder.getChildren())); assertEquals(3, origFolder.getChildren().length); FileObject destFolder = ROOT.resolveFile(FOLDER + "_dest"); assertFalse(destFolder.exists()); destFolder.copyFrom(origFolder, new DepthFileSelector(1)); assertTrue(destFolder.exists()); assertEquals(3, destFolder.getChildren().length); FileObject[] origFiles = origFolder.findFiles(new DepthFileSelector(1)); FileObject[] destFiles = destFolder.findFiles(new DepthFileSelector(1)); for (int i = 0; i < origFiles.length; i++) { assertEquals(origFiles[i].getName().getRelativeName(origFolder.getName()), destFiles[i].getName().getRelativeName(destFolder.getName())); } origFolder.delete(ALL_FILE_SELECTOR); destFolder.delete(ALL_FILE_SELECTOR); assertFalse(origFolder.exists()); assertFalse(destFolder.exists()); }
From source file:com.newatlanta.appengine.vfs.provider.GaeFileObject.java
private FileObject[] getLocalChildren() throws FileSystemException { if (isCombinedLocal) { GaeFileName fileName = (GaeFileName) getName(); String localUri = "file://" + fileName.getRootPath() + fileName.getPath(); FileObject localFile = getFileSystem().getFileSystemManager().resolveFile(localUri); if (localFile.exists()) { return localFile.getChildren(); }//from w w w . j a va2 s.c o m } return new FileObject[0]; }
From source file:com.panet.imeta.core.plugins.PluginLoader.java
/** * "Deploys" the plugin jar file.//w ww.ja v a 2s . c o m * * @param parent * @return * @throws FileSystemException */ private FileObject explodeJar(FileObject parent) throws FileSystemException { // By Alex, 7/13/07 // Since the JVM does not support nested jars and // URLClassLoaders, we have to hack it // see // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4735639 // // We do so by exploding the jar, sort of like deploying it FileObject dest = VFS.getManager().resolveFile(Const.getKettleDirectory() + File.separator + WORK_DIR); dest.createFolder(); FileObject destFile = dest.resolveFile(parent.getName().getBaseName()); if (!destFile.exists()) destFile.createFolder(); else // delete children for (FileObject child : destFile.getChildren()) child.delete(new AllFileSelector()); // force VFS to treat it as a jar file explicitly with children, // etc. and copy destFile.copyFrom(!(parent instanceof JarFileObject) ? VFS.getManager().resolveFile(JAR + ":" + parent.getName().getURI()) : parent, new AllFileSelector()); return destFile; }
From source file:com.panet.imeta.job.entries.sftpput.JobEntrySFTPPUT.java
public Result execute(Result previousResult, int nr, Repository rep, Job parentJob) throws KettleException { LogWriter log = LogWriter.getInstance(); Result result = previousResult; List<RowMetaAndData> rows = result.getRows(); result.setResult(false);/*from w ww. ja v a2s . co m*/ if (log.isDetailed()) log.logDetailed(toString(), Messages.getString("JobSFTPPUT.Log.StartJobEntry")); ArrayList<FileObject> myFileList = new ArrayList<FileObject>(); if (copyprevious) { if (rows.size() == 0) { if (log.isDetailed()) log.logDetailed(toString(), Messages.getString("JobSFTPPUT.ArgsFromPreviousNothing")); result.setResult(true); return result; } try { RowMetaAndData resultRow = null; // Copy the input row to the (command line) arguments for (int iteration = 0; iteration < rows.size(); iteration++) { resultRow = rows.get(iteration); // Get file names String file_previous = resultRow.getString(0, null); if (!Const.isEmpty(file_previous)) { FileObject file = KettleVFS.getFileObject(file_previous); if (!file.exists()) log.logError(toString(), Messages.getString("JobSFTPPUT.Log.FilefromPreviousNotFound", file_previous)); else { myFileList.add(file); if (log.isDebug()) log.logDebug(toString(), Messages.getString("JobSFTPPUT.Log.FilenameFromResult", file_previous)); } } } } catch (Exception e) { log.logError(toString(), Messages.getString("JobSFTPPUT.Error.ArgFromPrevious")); result.setNrErrors(1); return result; } } SFTPClient sftpclient = null; // String substitution.. String realServerName = environmentSubstitute(serverName); String realServerPort = environmentSubstitute(serverPort); String realUsername = environmentSubstitute(userName); String realPassword = environmentSubstitute(password); String realSftpDirString = environmentSubstitute(sftpDirectory); String realWildcard = environmentSubstitute(wildcard); String realLocalDirectory = environmentSubstitute(localDirectory); try { // Create sftp client to host ... sftpclient = new SFTPClient(InetAddress.getByName(realServerName), Const.toInt(realServerPort, 22), realUsername); if (log.isDetailed()) log.logDetailed(toString(), Messages.getString("JobSFTPPUT.Log.OpenedConnection", realServerName, "" + realServerPort, realUsername)); // login to ftp host ... sftpclient.login(realPassword); // Don't show the password in the logs, it's not good for security // audits // log.logDetailed(toString(), "logged in using password // "+realPassword); // Logging this seems a bad idea! Oh well. // move to spool dir ... if (!Const.isEmpty(realSftpDirString)) { sftpclient.chdir(realSftpDirString); if (log.isDetailed()) log.logDetailed(toString(), Messages.getString("JobSFTPPUT.Log.ChangedDirectory", realSftpDirString)); } // end if if (!copyprevious) { // Get all the files in the local directory... myFileList = new ArrayList<FileObject>(); FileObject localFiles = KettleVFS.getFileObject(realLocalDirectory); FileObject[] children = localFiles.getChildren(); if (children != null) { for (int i = 0; i < children.length; i++) { // Get filename of file or directory if (children[i].getType().equals(FileType.FILE)) { // myFileList.add(children[i].getAbsolutePath()); myFileList.add(children[i]); } } // end for } } if (myFileList == null || myFileList.size() == 0) { log.logError(toString(), Messages.getString("JobSFTPPUT.Error.NoFileToSend")); result.setNrErrors(1); return result; } if (log.isDetailed()) log.logDetailed(toString(), Messages.getString("JobSFTPPUT.Log.RowsFromPreviousResult", "" + myFileList.size())); Pattern pattern = null; if (!copyprevious) { if (!Const.isEmpty(realWildcard)) { pattern = Pattern.compile(realWildcard); } } // Get the files in the list and execute sftp.put() for each file for (int i = 0; i < myFileList.size() && !parentJob.isStopped(); i++) { FileObject myFile = myFileList.get(i); String localFilename = myFile.toString(); String destinationFilename = myFile.getName().getBaseName(); boolean getIt = true; // First see if the file matches the regular expression! if (pattern != null) { Matcher matcher = pattern.matcher(destinationFilename); getIt = matcher.matches(); } if (getIt) { if (log.isDebug()) log.logDebug(toString(), Messages.getString("JobSFTPPUT.Log.PuttingFile", localFilename, realSftpDirString)); sftpclient.put(myFile, destinationFilename); if (log.isDetailed()) log.logDetailed(toString(), Messages.getString("JobSFTPPUT.Log.TransferedFile", localFilename)); // Delete the file if this is needed! if (remove) { myFile.delete(); if (log.isDetailed()) log.logDetailed(toString(), Messages.getString("JobSFTPPUT.Log.DeletedFile", localFilename)); } else { if (addFilenameResut) { // Add to the result files... ResultFile resultFile = new ResultFile(ResultFile.FILE_TYPE_GENERAL, myFile, parentJob.getJobname(), toString()); result.getResultFiles().put(resultFile.getFile().toString(), resultFile); if (log.isDetailed()) log.logDetailed(toString(), Messages .getString("JobSFTPPUT.Log.FilenameAddedToResultFilenames", localFilename)); } } } } // end for result.setResult(true); // JKU: no idea if this is needed...! // result.setNrFilesRetrieved(filesRetrieved); } // end try catch (Exception e) { result.setNrErrors(1); log.logError(toString(), Messages.getString("JobSFTPPUT.Exception", e.getMessage())); log.logError(toString(), Const.getStackTracker(e)); } finally { // close connection, if possible try { if (sftpclient != null) sftpclient.disconnect(); } catch (Exception e) { // just ignore this, makes no big difference } // end catch } // end finallly return result; }
From source file:egovframework.rte.fdl.filehandling.FilehandlingServiceTest.java
/** * ? ? , ? ?? ?? ?/*from w ww. j av a2 s .c o m*/ * ? ? ? ? . * @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:com.vobject.appengine.java.io.File.java
private File[] listChildrenAsFileArray(final FilenameFilter filter, final FileObject dir, final boolean recursive) throws FileSystemException { if (dir.getType() == FileType.FOLDER) { final FileObject[] children = dir.getChildren(); final List list = new ArrayList(); for (int i = 0; i < children.length; i++) { final FileObject child = children[i]; final String fileName = child.getName().getBaseName(); if (filter != null) { if (filter.accept(null, fileName)) { list.add(new File(child)); }// ww w . j a v a 2 s . co m } else { list.add(new File(child)); } if (child.getType() == FileType.FOLDER) { if (recursive) { File[] childs = listChildrenAsFileArray(filter, child, recursive); list.addAll(Arrays.asList(childs)); } } } return (File[]) list.toArray(new File[0]); } else { return null; } }