HFS: The Virtual File System
Ok, from the beginning...
What is a File
It is a sequence of bytes. A byte is an information unit.
What is a File System
It is an ordered set of files. Often they are hierarchically ordered, in folders (also called directories).
What is a Virtual File System
File Systems usually lie on a disk. A Virtual File System (VFS from now on) does lie in memory instead. This can be a very interesting thing, in facts this is the main reason I started working on HFS.
Thanks to the VFS you can publish things in the way you want without changing anything on your disk. People will see what you want them to see. You can hide files, rename them, move'em to another folder...well, this is what people will see! No changes on your disk.
A lot of people is already experienced in that, because of well-known softwares, like Nero, has a VFS, where you can project your CD. With HFS you project your...website.
Most web servers let you publish one or more folders, but the content shown will just reflect the disk. This is often an unwanted feature.
What is a real/virtual folder
The VFS here has both virtual folders and real folders. A real folder is a link to a folder on your disc, and will show the actual (real-time) content of your disc. Anyway, the real folder is not exactly the folder on your disc, in facts you can rename it (virtually, that is to publish it with another name) and you can add items onto it, as files or virtual folders...or another real folder.
Virtual folders are yellow, real folders are red.
A virtual folder will show only items you see in the VFS. When you create one based on a folder of your disc, HFS will deep scan the files of your disc to add them to the VFS. If in the while a file is added, or removed, the VFS won't be updated. It would be an heavy task for the computer to keep the VFS up to date, and this is not the behaviour expected from a virtual folder.
A real folder will read the disc to know what items to show. When you create one, no scan will be performed; in facts, the scan is performed on client's request.