Overview

The VFS is intended to be very easy to use, while providing quite a lot of functionality. A virtual filing system consists of three basic objects: volumes, folders and files.

Volume
The best description for a volume is that it abstracts the methods used to obtain folders and files. As a convenience a volume also shares some functionality with a folder.
Folder
A folder is like a collection of other sub-folders and files. From a folder you can list the files and folders it contains.
File
A file contains the methods to access it's contents. There are methods to obtain input and output streams or Readers and Writers.

The files and folders within the VFS are described using URIs. The URI scheme is used to determine the way to access a file, e.g. file or http. A URI is then resolved into a volume, folder or file as required. During this resolution process each segment of the URI is examined and it's MIME type checked. If a supported MIME type is found, the VFS will deal with it appropriately. What this means is that nested archives are supported transparently. e.g. the following URI describes a file in a ZIP archive nested inside another ZIP archive on the local filesystem.

 file:/afolder/archive.zip/folder/nested.zip/folder2/afile.txt