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.

History

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, but these did not use the system-wide Spotlight engine.

Microsoft Windows

In November 2006, Microsoft released Windows Vista which allows users to save any search query as a Search Folder, a type of virtual folder. Search Folders are designed so that users are not required to remember where their files are stored. A Search Folder is not a physical folder, but is essentially an XML file that stores a defined query in a form that can be used by the Windows Search subsystem. Because of this, a Search Folder can be created anywhere that a normal folder can be created. A similar approach exists in Windows XP when the Windows Indexing Service is enabled, as a search can be saved as a.fnd file. However, a saved search query in Windows XP only saves a user's search criteria; users must still specify the location and perform the search again as results are not dynamic.
file, which contains the search query, in a .search-ms file.
Whenever a Search Folder is accessed, it returns results that are relevant to a saved search query; results manifest themselves as actual files and folders in storage. Search queries can be defined based on a number of parameters and properties, including all or part of a filename, specific dates, the content of the files themselves, associated metadata, specific file types, where files are located, and various other attributes. A feature called Query Composition allows searches to be based on other Search Folders to further refine results.
Windows Vista, by default, references the profile of the user who originally created a saved search as part of the query's scope, which includes the disk partition. This design choice does not prevent saved searches from being shared with other users, but it prevents them from operating on different partitions or user profiles. While users can manually modify the contents of a saved search so that the scope references the %USERPROFILE% environment variable, which will enable it to operate on other machines or profiles regardless of the original author or location, Microsoft has released a SearchMelt Creator utility that automates this process for the user.
In early development builds of Windows Vista, there existed pre-configured Search Folders for the default user profile folders that replaced the links to these folders seen on the Windows Start menu. When browsing directories in Windows Explorer, the navigation pane would feature predefined Search Folders that were relevant to a currently viewed directory. When viewing the Documents folder, for example, the navigation pane would populate with individual Search Folders based on authors of documents, their ratings, their keywords, their types, and documents that were recently changed.
Pre-release builds later included subqueries that aggregated content from a main Library Search Folder. Microsoft's stated aim with this approach was to move beyond the traditional physical folder concept, but the company received a considerable amount of feedback from users who found that the new Search Folder-based approach was too confusing. In particular, the Search Folders being located on the Start menu led to the belief that there existed multiple physical folders with similar names and content.
As a result of this feedback, the company reinstated the links to the physical folders on the Start menu, in a manner similar to how they appear in previous versions of Windows, and removed several of the Search Folders that were available prior to Windows Vista's release to manufacturing. In spite of the feature being less prominent within the interface, the operating system does include several preconfigured Search Folders: Recent Documents, Recent E-mail, Recent Music, Recent Pictures and Videos, Recently Changed, and Shared By Me, all of which are powered by a single Indexed Locations Search Folder, which realizes the previous Library concept.
In Windows 7, the concept of virtual folders has been significantly realized with the introduction of the Libraries feature. Similar to Saved Searches, 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.

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.

Other implementations

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, M2 in which virtual folders 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. 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.