In computing, a virtual folder generally denotes an organizing principle for files that is not dependent on location in a hierarchical directory tree. Instead, they consist of scripts that coalesce results from a data store, which may be a database or a custom index, and presents them visually in the format in which folder views are presented. A virtual folder can be thought of as a view that lists all files tagged with a certain tag, and thus a simulation of a folder whose dynamic contents can be assembled on the fly, when requested. It is related in concept to several other topics in computer science, with names including saved search, saved query, and filtering.
Virtual folders provide a means for making it easier for users to find files that are content-related, such as by project. The user needs to specify criteria and all files matching the criteria are dynamically aggregated into the virtual folder. Files in a virtual folder are not limited to any single physical location on the hard drive, as is the case with traditional folders, but can be in any location. In fact, files in a virtual folder do not even need to be stored as files on the hard drive. They may be on a network share or in a custom application datastore such as e-mail inbox or even a database.
Documents cannot be "stored" in a virtual folder, since physically a virtual folder is just a file storing a search query. Any attempt to store a file in a virtual folder, depending on the implementation, is redirected to some physical store.
Most implementations speed up searching by pre-indexing the hard drive, or the locations where the search has to be performed. So when searching is to be done, the index, which is a representation of the entire data suitable for fast searching, is used. Since the entire folder hierarchy is not accessed, the search is completed much faster.
Virtual folders are a well-established construct in operating systems. BeOS included a version of virtual folders referred to as "saved queries", that has since influenced the development of virtual folder features in operating systems like Mac OS X, Windows and Linux. These virtual folders are populated dynamically by executing a search on the entire file system, or a subset of it, or by using the cached version of the search.
The initial developer preview of the operating system, released in October 1995, included database-like functionality to make it easier for users to manage their files. To do this the filesystem indexes certain file attributes to allow for fast searching. By default the filesystem indexes the filename, size and last modified timestamp automatically, but could also create indexes for other attributes when told to by either an application or by the user.
When a user performs a file search, a file is created in the folder "/boot/home/queries" with a name derived from the content of the query and the date and time of the search, such as "Name = Western Infirmary - Mar 21, 11:59:40 PM". The query criteria of the search is stored in an attribute of the file called "qrystr". When the file is opened, the filesystem indexes were queried and a Tracker window is opened with an up-to-date list of files that match the criteria.
Additional features were added to search with subsequent releases. Release 2 introduced the ability to edit saved queries, and Release 3 gave the users the chance to define their own names for saved queries. Before Release 4 in 1998, all queries were stored indefinitely. However with R4, the BeOS developers introduced a seven day limit on all queries. If a user wanted a query to stay around longer, they could uncheck a "Temporary" flag in the Find dialog.
Mac OS X
In April 2005, Apple released Mac OS X v10.4, with their implementation of virtual folders called Smart Folders. These folders are actually dynamically updated by the Spotlight engine to contain content that match certain criteria. For example, this could be used to give you a folder containing all the Word documents containing the word "shpadoinkle" that have been edited within the last 7 days. Smart Folders are created by saving a Spotlight search, which records the search criteria in a Property list file with a .savedSearch extension and, by default, saves them in the "/Users/username/Library/Saved Searches" folder.
There are many variants of the Smart Folder concept that can be seen in applications that use the Spotlight engine, usually identified by a gear symbol on its purple-hued icon. For example: Smart Mailboxes in Mail and Smart Groups in Address Book.
In November 2006, Microsoft released Windows Vista which allows saving any search query as a Search Folder, which is a type of virtual folder. Whenever it is accessed the search is run and the results are presented as if a folder is being shown, with its contents being aliases to the actual files. The exception is that, in certain scenarios, the search is not run and a cached version of the folder is shown. A limitation of saved searches is that they can only be used on the same Windows installation where they were created. Saved searches cannot be used on another Windows installation on the same PC, or when Windows is re-installed on the same volume. Saved searches also cannot be used on the network.
The same Saved Search approach exists in Windows XP with results generated quickly from an index when Windows Indexing Service is enabled and presented in a similar virtual folder. The search parameters can be saved as a .fnd file for Windows XP searches.
A Search Folder is just an XML file, which stores the query in a form that can be used by the Windows search subsystem. As such, it can be created anywhere in the filesystem wherever a normal file can be created, by saving a search from the Windows Search system. Whenever such files are accessed, the search is executed on the entire hard drive and the matches are aggregated and presented as a virtual folder.
In the early development builds of Windows Vista, there were some pre-configured Virtual Folders, for Music, Pictures, Documents and the like, which were used as replacement of their special folder counterpart. Windows Vista also supported manual creation of custom virtual folders. However, Microsoft felt that Virtual Folders will be too confusing to the general public and hence they are not being used as the replacement of physical folders, as was the original goal. Unlike in previous versions, where Start Menu icons led to Virtual Folders for Music, Pictures and Documents, build 5308 onwards led to physical folders of the same name, which are exactly like My Documents and other similar folders in Windows XP.
In Windows 7, the concept of virtual folders has been significantly realized with the introduction of the Libraries feature. Similar to Virtual Folders, a Library is simply an XML file but with the .library-ms extension and is essentially a collection of files with specified attributes presented in a familiar folder-style visual interface. Libraries have a shell namespace extension in Explorer and their XML files can be reused across Windows installations or the network.
In GNOME 2.14, a saved search is a virtual folder whose contents are the result of a Nautilus search, which has multiple backends. The contents of these folders are determined dynamically when the folder is opened, and updated automatically when files are created or modified.
Virtual folders are also a well-established construct in email clients. In early 1991, the Emacs-based mail reader VM provided a virtual folder facility in its version 5.09. VM allows the users to define virtual folders using rules, taking their mail content from one or more physical folders and based on selection criteria dealing with dates, authors, recipient, subject, message body etc. Virtual folders can also be created interactively and take content from previously defined virtual folders, thereby cascading the selection criteria. The Evolution email client created by Helix Code in 2000, also incorporated virtual folders. Folders can be created that automatically list e-mails matching user-defined rules, for example all e-mail from a particular address or all e-mail that includes a specific keyword. The Opera web browser released a new mail client (beta in November 2002, final version in Jan 2003), M2 in which virtual folders (called access points) were used for all email management. Virtual folders were automatically made for active contacts, for attachments and for assigned labels. Virtual folders were also automatically generated whenever a search was performed, and manual virtual folders could use multiple logical mail header rules for their construction (including using Regular Expressions). Microsoft Outlook 2003 added a similar feature called Search Folders. Gmail, first released in 2004, bases all of its mail management on virtual folders accessed via labels. Mozilla Thunderbird also has the ability to create search folders and from version 1.5 allowed the search to be done over more than one email account.
In July 2002, Apple announced version 3 of iTunes which includes Smart Playlists which can be considered a variant of a virtual folder.[clarification needed] The only difference is that the search executed on accessing them is not on the file system's folder hierarchy, but on their internal data-store. Microsoft also added a similar feature to version 9 of Windows Media Player in Windows XP called Auto Playlists in 2003.
- Scot Hacker (1999). The BeOS Bible. Peachpit Press. ISBN 0-201-35377-6.
- Chris Herborth. "Show formula query strings in Tracker". The BeOS Tip Server. Retrieved 2007-03-22.
- Be Inc. (October 7, 1997). "Be Ships BeOS Preview Release 2". Be Inc. Retrieved 2006-12-24.
- Be Inc. "Searching on the BeOS". The BeOS Tip of the Week. Be Inc. Retrieved 2006-12-24.
- Scot Hacker. "Self-destructing queries". The BeOS Tip Server. Retrieved 2007-03-22.
- Dominic Giampaolo. "Personal homepage". Retrieved 2006-09-10.
- Kyle Jones. "VM User's Manual - Virtual Folders". Wonderworks. Retrieved 2010-01-26.
- Phil Sung. "VM Configuration and Workflow". Retrieved 2010-03-13.
- Michael Hall (June 30, 2000). "You Say You Want an Evolution". Linux Planet. Retrieved 2006-12-24.
- Dave Whitinger (July 8, 1999). "Dave Whitinger and Miguel de Icaza at the ZD Open Source Forum". Linux Today. Retrieved 2006-12-24.
- "Saved Search - MozillaZine Knowledge Base". Retrieved 2010-01-22.
- Apple (July 17, 2002). "Apple Announces iTunes 3". Apple. Retrieved 2006-12-25.
- Microsoft (January 3, 2003). "Microsoft Announces Digital Media Upgrade for Windows XP With Final Release of Windows Media Player 9 Series and Windows Movie Maker 2". Microsoft. Retrieved 2006-12-25.