Clear all content from this folder and subordinates.
Close and/or synchronize changes made to this folder. Each driver should take advantage of this as appropriate, perhaps combining multiple files together, or possibly copying to a remote location.
Return a contained file representation.
Return a contained folder representation.
Return a short name.
Iterate over the set of immediate child folders. This is useful for reflecting the hierarchy.
Returns a folder set containing only this one. Statistics are inclusive of entries within this folder only.
Return a long name.
Returns a subtree of folders. Statistics are inclusive of files within this folder and all others within the tree.
A folder is being added or removed from the hierarchy. Use this to test for validity (or whatever) and throw exceptions as necessary.
Is folder writable?
Supports a model a bit like CSS selectors, where a selection of operands is made before applying some operation. For example:
The same approach is used to select the subtree descending from a folder:
Filtering can be applied to the tree resulting in a sub-group. Group operations remain applicable. Note that various wildcard characters may be used in the filtering:
Files are selected from a set of folders in a similar manner:
Sets of folders and files support iteration via foreach:
Creating and opening a sub-folder is supported in a similar manner, where the single instance is 'selected' before the operation is applied. Open differs from create in that the folder must exist for the former:
File manipulation is handled in much the same way:
The principal benefits of these approaches are twofold: 1. it turns out to be notably more efficient in terms of traversal, and 2. there's no casting required, since there is a clean separation between files and folders.
See VfsFile for more information on file handling.