Virtual folder

In computing, a virtual folder generally denotes an organizing principle for files that is not dependent on location in a hierarchical directory tree. Instead, it consists of software that coalesces 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.

Technology
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.

Implementations
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.

BeOS
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.

macOS
In April 2005, Apple released Mac OS X v10.4, with their implementation of virtual folders called Smart Folders. These folders are 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.

Dominic Giampaolo, one of the lead developers of the BeOS filesystem, was also involved in adding a virtual folder system in Apple Inc.'s Mac OS X operating system.

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 a purple-hued icon. Examples include: Smart Mailboxes in Mail and Smart Groups in Address Book.

Before Spotlight earlier versions of macOS had a similar concept in the iApps (iTunes and iPhoto), but these did not use the system-wide Spotlight engine.

Saved Searches
Windows Vista released in November 2006 introduced virtual folders to the Windows platform with the introduction of Saved Searches, which present items based on their properties rather than folder hierarchies on disk. Saved Searches are not folders — they do not store items — they instead are XML files that retain a query for utilization by Windows Search. Saved Searches can be defined based on customizable parameters including dates, metadata, names, locations to search (called the scopes), and item types. When a Saved Search is created, the query retains the presentation layout that appeared when the search was first performed such that subsequent searches will present identical arrangements of items. Saved Searches can also be constructed on other Saved Searches (query composition).

By default, Windows Vista references the disk partition and user profile of a created Saved Search as part of its scope, which inhibits their ability to return content from different machines or partitions when transferred to other machines. Microsoft released a SearchMelt Creator utility that changes the scope of Saved Searches to reference the %USERPROFILE% environment variable, which allows them to operate on other machines or profiles; users can also edit Saved Searches manually to reference %USERPROFILE% to facilitate sharing.

Saved Searches additionally allow users to create stacks of data, which are collections of items assembled by properties such as document authors. The same content can appear in more than one stack. Users can, by way of example, first navigate to a specific author stack then to a keyword stack, or to the same keyword stack and to the same author stack without creating new folders or changing the underlying location on disk, which frees users from the limitation of a hierarchical folder structure where one item can only be stored in one location — this liberation from folder hierarchies was a primary benefit and differentiator of WinFS.

Pre-release builds of Windows Vista offered significantly different metadata and namespace functionality in contrast to the functionality of the build of Windows Vista released to manufacturing. Microsoft constructed several Saved Searches as part of its goals for a new user profile namespace, which replaced traditional user profile folders. Documents, My Music, and My Pictures on the Start menu were replaced by Saved Searches — All Documents, All Music, and All Pictures and Videos — that searched for documents, music, and photos and videos, respectively, with several other Saved Searches for specific content (e.g., authors for documents) also displayed in the navigation pane of Windows Explorer. When viewing All Music or traditional folders with music, for example, the navigation pane would include Saved Searches for all music, albums, artists, genres, favorite music, and ratings. Stacks in Saved Searches in pre-release builds of Windows Vista could also be created by users, or write properties to data by drag-and-drop — in a feature known as metadata painting, dragging a document onto an author stack, for example, would assign that author to the document. In later builds, Microsoft replaced these Saved Searches with a single Library Saved Search that aggregated content from all locations with subqueries for individual types (e.g., the Music Library searched Library for all music). Microsoft had sought to include metadata painting and user profile namespace virtual folders since the development of WinFS; the objective was for Saved Searches to become the primary way users interact with data. Microsoft reportedly received extensive feedback that these changes were confusing — having Saved Searches in the new user profile namespace caused users to believe there were several folders with similar names.

Accordingly, Microsoft removed the Library Saved Search and its associated subqueries; however, Windows Vista still includes Recent Documents, Recent E-mail, Recent Music, Recent Pictures and Videos, and Recently Changed Saved Searches, all of which use a single Indexed Locations Saved Search in accordance with the previous Library concept. These Saved Searches were previously known as Last 30 Days Documents, Last 7 Days Email, Fresh Tracks, and Last 30 Days Pictures and Videos.

Libraries
Windows 7 introduces Libraries to display and organize content. Similar to Saved Searches, a Library is an XML file with a unique extension —  extension — and it is a collection of files organized by specified locations. Unlike Saved Searches, however, users must specify folder locations, and Libraries can display content that does not match the type of the Library (e.g., the Pictures Library may display a document if any subfolders include documents). Libraries have a shell namespace extension in Explorer and their XML files can be reused across Windows installations or the network.

GNOME
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.

Email clients
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.

Music clients
In July 2002, Apple announced version 3 of iTunes which includes Smart Playlists which can be considered a variant of a virtual folder. 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.