Class Vfs

java.lang.Object
org.reflections.vfs.Vfs

public abstract class Vfs extends Object
a simple virtual file system bridge

use the fromURL(java.net.URL) to get a Vfs.Dir, then use Vfs.Dir.getFiles() to iterate over the Vfs.File

for example:

      Vfs.Dir dir = Vfs.fromURL(url);
      Iterable<Vfs.File> files = dir.getFiles();
      for (Vfs.File file : files) {
          InputStream is = file.openInputStream();
      }
 

fromURL(java.net.URL) uses static Vfs.DefaultUrlTypes to resolve URLs. It contains VfsTypes for handling for common resources such as local jar file, local directory, jar url, jar input stream and more.

It can be plugged in with other Vfs.UrlType using addDefaultURLTypes(org.reflections.vfs.Vfs.UrlType) or setDefaultURLTypes(java.util.List).

for example:

      Vfs.addDefaultURLTypes(new Vfs.UrlType() {
          public boolean matches(URL url)         {
              return url.getProtocol().equals("http");
          }
          public Vfs.Dir createDir(final URL url) {
              return new HttpDir(url); //implement this type... (check out a naive implementation on VfsTest)
          }
      });

      Vfs.Dir dir = Vfs.fromURL(new URL("http://mirrors.ibiblio.org/pub/mirrors/maven2/org/slf4j/slf4j-api/1.5.6/slf4j-api-1.5.6.jar"));
 

use findFiles(java.util.Collection, java.util.function.Predicate) to get an iteration of files matching given name predicate over given list of urls

  • Field Details

  • Constructor Details

    • Vfs

      public Vfs()
  • Method Details

    • getDefaultUrlTypes

      public static List<Vfs.UrlType> getDefaultUrlTypes()
      the default url types that will be used when issuing fromURL(java.net.URL)
    • setDefaultURLTypes

      public static void setDefaultURLTypes(List<Vfs.UrlType> urlTypes)
      sets the static default url types. can be used to statically plug in urlTypes
    • addDefaultURLTypes

      public static void addDefaultURLTypes(Vfs.UrlType urlType)
      add a static default url types to the beginning of the default url types list. can be used to statically plug in urlTypes
    • fromURL

      public static Vfs.Dir fromURL(URL url)
      tries to create a Dir from the given url, using the defaultUrlTypes
    • fromURL

      public static Vfs.Dir fromURL(URL url, List<Vfs.UrlType> urlTypes)
      tries to create a Dir from the given url, using the given urlTypes
    • fromURL

      public static Vfs.Dir fromURL(URL url, Vfs.UrlType... urlTypes)
      tries to create a Dir from the given url, using the given urlTypes
    • findFiles

      public static Iterable<Vfs.File> findFiles(Collection<URL> inUrls, String packagePrefix, Predicate<String> nameFilter)
      return an iterable of all Vfs.File in given urls, starting with given packagePrefix and matching nameFilter
    • findFiles

      public static Iterable<Vfs.File> findFiles(Collection<URL> urls, Predicate<Vfs.File> filePredicate)
      return an iterable of all Vfs.File in given urls, matching filePredicate
    • getFile

      public static File getFile(URL url)
      try to get File from url
    • hasJarFileInPath

      private static boolean hasJarFileInPath(URL url)