This is the second post in a series of posts about Windows 7 Libraries. This post describes some of the rationale that drove Windows 7 Libraries functionality, and explores the new features and opportunities we, as developers, have with Windows 7 Libraries.
What Libraries mean for users in Windows 7?
To better understand the concept of Libraries in Windows 7, we need to look back to the time before Windows 7. Earlier version of Windows like Windows Vista and XP, included sets of special folders for storing user’s content such as “My Documents” and “My Pictures.” In Windows Vista, these special folders where automatically indexed to allow users to perform faster more efficient searches on their content. Even so, many users, me included, store their files, music, and pictures all over the PC in various folders like c:\temp, d:\Birthday2008\pictures, or even in remote storage. We refer to this as storing data outside the user’s profile storage space. This affects the indexing and therefore the entire search experience, and often sends the user on a small quest to try to find their content.
So, in Windows 7, Libraries tries to address the problem of users' content stored all over the PC by allowing users to have full control over their “Documents Library” folder structure. Meaning that in Windows 7, users can define which folders to include in the Documents Library. This is true for any Library. Therefore, we can say that Libraries are user-defined collections of content. By including folders in Libraries, the user is telling Windows where his important data is located. The system will index folders, to enable fast searching and stacking based on file properties.
In Windows 7, users will go to Libraries in order to manage their documents, music, pictures, and other files. As you can see in Windows Explorer and the Common File Dialog, Libraries are an integral part of the Windows Shell. This integration is very important because it enables users to browse their files the same way they would in a folder, which means there is no new behavior to learn. Clicking on the Documents Library shows you your documents. Moreover, due to the fact that libraries are integrated into the Windows Shell, users can perform searches and filter results by properties like date, type, and author in both Windows Explorer and the Common File Dialog. In other words, by using libraries, users get to enjoy storage that is both flexible and indexed. The following image displays the integration of several folders into a single library view and the rich search and pivots of Windows Explorer in Windows 7.
So what is a library?
In many ways, a Library is similar to a folder. As we mentioned before, when users open a Library, they can see one or more files or folders. However, unlike a folder, a Library can display files that are stored in several folders at the same time. This is a subtle, but important, difference. Libraries don't actually store items. They monitor folders that contain a user’s items, and provide a single access point and rich view pivots (by file Type, date or author) of this aggregated content. Libraries promote a user’s data and let the file system fade into the background.
The Windows 7 default Libraries setting has one main Library called “Libraries” that contains four predefined default Libraries: Documents, Music, Pictures, and Videos. Users can save and copy files directly to a library, even if we said that libraries are not file system folders, since every library has a default save location to send these files to. Each library contains two physical file locations, the user's personal folder (this is the default Known Folder that is included in a library, for example, My Documents in the Documents Library), and the public folder For custom categories, the default save location is the first folder added. Users may change the default save location of a library at any point, but if they remove the default save location, the system selects the next folder in the library as the new save location. In addition, users can save to any folder they have permissions to that are included in a library.
For folders to be successfully added to a library, they must be capable of being indexed on the local machine, indexed on a remote Windows machine, or on a server with files indexed by Windows Search. In order to maintain the high standards for the Windows Shell search experience, users can’t add folders that are not indexed into a folder.
What more do developers need to know about Libraries?
After understanding what Libraries are, developers need to understand how they can support and use Libraries in their applications. This is important because by using Libraries, users inform Windows where their important data is. This allows you, as developer, to access a user's Library and consume its contents, removing the need maintain your own set of data storage for your application.
You can also use the new IShellLibrary API to empower your applications to manipulate libraries. This can help ensure that applications remain in sync with user files and Windows since any change made to a library structure will be reflected in the application that is monitoring that library – giving us developers great power and great responsibility.
In the next post, we will cover the underlying architecture of libraries and dive deeper into the API.
I see I'm not the only one getting frustrated over the Windows 7 library structures. I feel sometimes stupid not knowing where are my files.
Starting the story of the library usage, I think I save the file at the right place. When I want to get the file from the place, I think I save, telling my sell, yeah it is their, No, it is not their. When this moment arrive the machinery of my brain start to spark like a firework. This type of search is useless and unproductive, very frustrating. Continuing my story, I suspect the folder is not index yet. The file in reality is somewhere in the galaxy of Microsoft under the AppData that I saw last week after a year of trying to understand.
I reread the type of article that is given which are well explained. You know I'm the user, a long time window user.
It is a great effort of gathering the folders from all over the PCs in one library. The problem is not gathering the folders in the library. It is getting the index work which is not. When I add a new folder in the library, sometimesI have the following message the folder is not indexed. You know when I see that type of message the folder is not index. I don't want know that; Just index the folder that is it. Google is indexing the entire web. I'm sure Microsoft with his system is able to index a single PC or a network of PCs; Come on; I like the idea behind the library, the structure should be more flexible. Actually Windows do not have to care about the structure. Do you think when google is searching the web has to think about the structure of the libraries? No, and I hope not. It should be the same with Windows. Sometimes I'm searching some files that are save in those hidden folders and I'm not finding them, a little frustrating.
The only structure that is important for windows is the C:windows folder. I know some would say what are you doing with the default folders? Where to download? Where to install? Well answering this question is the idea instead of fixing the default folder statically it can be define in a Default folder management. This way we do not have to care about the structure of the folders. We only care about the default folders defines in windows environment. Actually Windows should care more about the Default management than the folder structure of the system.
I feel relief to share that.
For those of you searching for a more detailed and down to earth kind of guide (with less technical details), check out this tutorial: <a href="www.7tutorials.com/libraries-great-feature-windows-7">Libraries - A Great Feature of Windows 7</a>
Yochay, thank you for all the information about libraries. But they are one of the dumbest thing MS has done. Why can't they leave well enough along. The folder view in XP and Vista was by far the best. It was easy to find "My Documents" My Pictures" etc... and expand the list to see sub folders and so on. Can you please explain to those of us who don't want to use libraries how to stop using them and get files out of the libraries folder?
Libraries also create a problem for network users you have their files stored on a network. The libraries folder will not store from the network. Therefore when I unplug from the network or the network is down, my files are not on my computer.
I don't know very much at all about programming and am simply an end user of this technology. I was view the 'libraries' in the 'videos' section and went to close a window but inadvertently dragged items from the left menu bar into the videos library section. Now these 'libraries' are upset and when I try to access this videos area it stops responding and I have to shut it down. I've tried everything I can think of to 'undo' what I did wrong but I don't have a clue what went wrong. I'm now simply trying to understand what should be in this video library area and what should NOT be located here that I probably dragged into this area by mistake. How do I clean this problem up and put my system back into 'happy' mode? Thank you. Patricia from Stockton, California
How do I explain this to my Mother? All she wants to do is organize her pictures the way she wants to... and its a big jumbled mess to her.
She cant get any of her pictures to move to folders or arrange them to her liking. She needs "some higher powers" permission to do half the stuff she should be able to do. Being a non Win7 user so far I am at a loss as to try and explain it. Nothing about this Windows 7 seems very user friendly. Where are all the helpful right clicking lists. It seems we've lost a lot of Options which doesn't really promote an improved feeling.
Perhaps it just seems that way from the older generation. From what I've heard it was supposed to be so easy... but her and I both are struggling to make any sense of it.
Im going to keep searching for simpler examples on how to bend WIN7 & Its Library of Horror to our Will! LOL (A little Halloween humor there.) Treats All ;)
I couldn't agree more!! This is just ridiculous. I want certain business files to save to the program folder it creates and I get a permission error saying I can't save there!? I'm the owner of this software/computer and administrator and win 7 makes you jump through the hoops to "open" these program file folders. This is suppose to make the computer more secure when in fact it just makes it more difficult to navigate and "organize" the computer to your own style. I loaded Win7 on a friends computer for him and within 1 week he had 6 viruses overtaking his computer (yes his own fault) but my point here is you can't tell me this "are you sure" pop up and securing program files folders does anything towards virus and security! I have had XP since the beginning and I knew what folders I had shared, where my info was etc! I never had a anti-virus.
As long as i'm on a rant, what the hell is up with this file sharing also?! I don't have a clue what files are shared not shared, this is so fricken stupid. the latest I've seen people on my network can see my documents folder and I thought this was a private user folder (since Microsoft will only allow you to save here and not in other places) so now others can see my private business files! WTF
I guess I had to pipe in and agree with the others, don't tell me how my files are going to be saved and where! I personally save my MP3's on a different hard drive so when Microsoft's crappy OS's fail I can reinstall and not have to load all my music.
Thank you, tlwilli2, I thought I was the only one. In a previous post the author said, "By including folders in Libraries, users tell Windows where their important data are located." My question is, how incredibily inept does one have to be such that you have to tell Windows where your important data are located because you can't keep track of it yourself? What a sloppy, pathetic mess their computers, networks and external drives must be. Why does MS find it necessary to redesign such an integral part of Windows to accomodate the most inept among us? Now, because a few people in a focus group told some obscure MS contract-polster that they can never find their data, we have to deal with this in-your-face,library thing. What an incredible waste of time for those of us who can actually turn on a computer and use it properly.
I would have preferred that MS focus more on stability, security and memory issues rather than this Library "thing" that, according to Yochay is a "user-defined" experience. If it is truly "user-defined", why can't I define it such that it is DISABLED?
HATE THEM, HATE THEM, HATE THEM, Oh My God!!! I know where my data is. For Microsoft to force the introduction of this by making it the default and no way to truly disable it is arrogant I hate libraries and I hate public folders.
Give me a profile folder and leave it alone. Don't create default my pictures, my docs, my videos, my downloads, etc.
I want to create my own folders and I keep things organized. Jesus Christ, stop trying to anticipate what I want and pre-create crap you think I might need. Remove libraries and remove public folders from windows installs and I'll be happy.
Libraries are "nice". . . But. . . As far as I am concerned the slowdown in Windows 7 of many "compatible" programs - as well as the windows explorer in Windows 7 - is a nasty bit of "waste of time'" for people who earn a living rather than spend their days online.
Trying to insert, delete or simply browse folders and files in the Picture section has to basically wait for the "green monster" bar to stop its trip through the subject line. - but often, it doesn't - and so, another bit of time wasted because the windows explorer fails to bring on results.
Various processes in Windows 7 go like the following : Click on "new folder", click out of pictures, click back in, and voila . . . the folder you created. (It won't appear otherwoise. . . ) Click on rename, click out of pictures, click back in. . . and voila.. . your folder has the new name. Click "copy" re file or files and do the same process, click out of pictures and click back in before you can paste. Click on delete of folders or files and click, outof pictures andf then click back in, The file or folder will now be deleted. . . maybe. . . . All of this fater a clean installation of Windows ultimate 7 64 bit. All of this after erasing a computer and paying a technician to verify every drive and PC paraphenalia in order to 'not' have problems. Try a new installation 3 times. . . . . . . . . Sound like an amazing, new and improved product to you? Not to my business it doesn't. . . This may sound like a twit's rant about a collossal product. Well, explain to this twit how such a product can ever see the day in the marketplace. If my car ran like Windows 7, my first trip out of the driveway would have gotten me killed.
Am I the only one that sees this "new" Libraries feature as a cause for headache in the not so distant future.
Imagine for a second a Technical Support(TS) conversation with a Customer (C):
C - Hi, I downloaded my program but now I can't find it
TS - Where did you download it?
C - In My Downloads
TS - OK go to My downloads, do you see it there?
C - No.
TS - Are you looking at a library or the folder?
C - What's a library?
I never loved this feature "My documents" "My pictures" etc. It makes me look stupid. Like I cant create a new folder wherever I what it to put my pictures.
I never loved this feature in any windows. My docs, pics etc. This sucks, and it should be taken off. It made me look stupid. Like I cant make a new folder where I want to put my pictures etc. :D
i have question about libraries from user point.
I have folder called C:\music, that users have standard read and write rights, i share it as \\pc\music$ and give everyone readonly permission, add this to library to wmp12 (that is in fact music library) on same pc. But after some tim wmp or windows add C:\music to library also. Why is that?!
Is there some email on what i can contact microsoft or windows media team about this?
Our company is just about to begin rolling out Windows 7 to customer AD environments. I would love to be able to set up users for libraries via login script, and ditch mapped drives altogether. Is there a way? VBScript, CMD, Powershell, VB.NET?
I forget to specify that I use this technique in shell extension of my copy tool talent copy, so it is tested and works
Dear Yochay Kiriaty,
After a lot of searches in MSDN documentation, and a few tests I found this simple solution to my problem:
First I use SHGetNameFromIDList with SIGDN_DESKTOPABSOLUTEPARSING flag,
next I initialize library inteface with SHLoadLibraryFromParsingName function, next I use GetDefaultSaveFolder method of IShellLibrary interface to get default save path object, and finally I use GetDisplayName method of IShellItem interface with SIGDN_FILESYSPATH parameter to get file system path, that I can pass to my copy algorithm
Now things looks simple, but MSDN documentation does not give solution because it is not updated with new features
To - Ventsislav Alexandriyski
I had to ask for help on this one, altough the answer is rather simple:
SHGetPathFromIDList fails because it can only return filesystem paths for shell items that are marked SFGAO_FILESYSTEM, and libraries are not filesystem items (similar to the "computer" item) - that is they are not real files with real paths!
You can use the shell namespace to reason over the library contents (msdn.microsoft.com/.../cc144090(VS.85).aspx) or use IShellLibrary if you want to do library-specific actions on the set of library locations.
Hope this help,
Brandon LeBlanc, your appeal must be directed to MS developers developed Libraries, because in this idea there is not any constructive thing.
Libraries are confizing for users, and make life of programmers hard.
There are not any benefit from this libraries, just problems and complexity
Now my super duper smart copy tool "Talent Copy" is not working on libraries, because SHGetPathFromIDList fails on value returned by pidlFolder, and there is not any explanation on MSDN why this happen and that exactly contain pidlFolder
I understand that someone is got good money for developing of stupid idea of libraries, but this are wasted money
Ventsislav Alexandriyski , thank you for your feedback! It's much appreciated. However, I would like to ask that in the future you perhaps be a bit more constructive. Name calling isn't a good way to get folks to listen to your feedback ;-)
This library thing is stupid thing made by stupid people!
Smart people made comlex things simple, and stupid people made simple thing complex.
So Windows developers are very stupis people.
If I save something to temp folder, I plan to delete it later, and I do not want this folder content to be in any folder with documents ot other important to me stuff.
I cannot understand who will decide what folder in what library to add, because if this will be user, the same user that now store files in different locations, this is absolutely useless.
If windows developer want to do something good, then they work on loading subtitles in windows media player, or to make weather gadget to work and for othr countries axcept for USA!!!
Thear MS windows developers, there are other countries, and languages except USA, and english!!!
Or maybe better make HDD to switsh off for more than 1 sec, then it is set to be turned off from power settings
If I want to backup few folders I do not need your librries to make my life hard! If I can't find some software to do it for me I can write simple BAT file that will copy all folders I want, where I want, and all will be simple and clear
So as I said, this library thing is most stuped thing ever made.
In addition, there is no documentation, and I cannot find any info, what is passed to pidlFolder in initialize method of IShellExtInit Interface, so my shell extension is not working on libraries
I've found a workaround for the "this network location can't be included because it's not indexed" issue.
1. Open Windows Media player and manage one of the built in libraries such as “Videos”. (Don’t use the Recoded TV as that will cause issues with step 2)
You will find that you can add any network location you want with no error message re indexing.
2. Then close Media Player and go back to the explorer view of Libraries, you will then find that the video's library has any none indexed network locations that you added via Media Player.
3. You can them make a copy of the Video Library and rename it to something more pertinent to the data it contains.
You don’t get benefits of indexing etc doing this, but it’s really useful to have all your data locations together. Maybe this is something MS could consider?
Hi. We have noticed a problem when upgrading from Vista SP1 to Windows 7.
Problem description: In our product (Firewall) we are using NDIS driver. The driver is installed using INF and catalog file that is signed by Microsoft (after passing the WHQL certification). All works fine until we upgrade from Vista sp1 to Windows 7. We noticed that the driver (after the upgrade) is not installed. Seems like some problem in the upgrade (silent install of NDIS does not work properly maybe?)
Would appreciate your help.
In the library function, please add the ability for the user to set different views for the root folder (e.g., pictures) and the various subfolders. I would like to be able to view the root folder Pictures in the Small Icon or List view because I have a lot of content and don't need to scroll through miles of HUGE large icons at that folder level. But 2 levels below the Pictures folder, I have folders of photos I would like to have always open up in the LARGE ICON view so I can see the actual thumbnails. But if I change the view at the Library subfolder level, then the Root Library folder view also changes back to HUGE Icons again. Please provide the USER with the ability to set the view for each of these Library folders and subfolders independently of each other.
OT: Thanks for putting back an easy graphical way (from XP) for the user to set the size of the space allocated to system restore.
OT: Thanks for putting back an easy graphical way (from XP) for the user to set the size of the space allocated to system restore. And great job overall so far on W7.
Overall, I think W7 RC is fantastic and I think Libraries are a good idea and will be useful, albeit somewhat awkward and confusing at times, especially the way they are currently implemented.
The main problem I am having with the Library feature as currently implemented in the RC is that one cannot customize the various folder Views in the library independently of the Root Library folder. So, for example, the library folder "Pictures" and the sub folders contained under Pictures all currently have to have the same View settings. This is a big design defect, imo.
For example, I would like to view the Library root folder Pictures in a List view because I have a lot of content displayed there and don't need to see large numbers of HUGE icons that I have to scroll through to find what I'm looking for. But I would like to see the sub folders grouped under the root folder "Pictures" 2 levels down in the LARGE ICON view so I can see the actual Thumbnails of my photos when I am at that level in the Pictures library. The way you have it set up now, if I change the subfolder view, it changes the root library folder view and vice versa. So I cannot customize the view of these folders separately as I would like. I find this very frustrating and an impediment to using and enjoying the Library functionality.
I would sugjest and request that you implement this added customizability of allowing users to set and retaining independent views for library folders and subfolders. If this cannot be done, perhaps you should consider implementing a way for users to disable the library function entirely.
(OT, a big thanks for putting back the easy way from XP to customize the size of the space consumed by system restore.)
SaptarshI: Your font library could be achieved in a couple of ways.
1. Simply create a top level Fonts library that includes all the folders where you keep fonts. Any font application that browses that library will only see the font files if its open file mask is set appropriately.
2. Create a Saved Search and put it in your Favorites.
Library should give user the option to add not only folders but specific files/files based on *.jpg or a*.* or open???.doc like that so that we can involve files in a library which I need.
For example I love to collect font ... So i can make a font library ... with its contents as *.ttf, *.otf ... etc. The library should ask user the option to give the folders from which such files have to be included. One can select say download folder, or some may select E: DRIVE or some may select entire computer.
These files may remain in other folders but when I open the library they should be visible together.
This will also help in maintaing different college project libraries with different files, some files may be common to other libraries also.
Also the possibility to include files based on tags.
The Win7 beta libraries were great; I could add all my music directories. Strangely enough the Win7 RC libraries are entirely useless; it refuses to add folders saying "this network location can't be included because it's not indexed".
One step forward, two steps back.
In using libraries it looks like both the end user and the application still needs to be aware of the actual folder name used for file storage. I'm having trouble seeing any benefit for end users or applications. It looks like the library name is just a somewhat more complicated parent folder.
Option to hide subfolders in library
Libraries could probably be nice for gaining more independence from the hierachical organization, but then subfolders shouldn't be displayed. At least we should have the option to hide them.
Best option for users would be that they could decide to display folders in the library or not by clicking an Attibute in Properties (like hidden or read only).
In response to Duro and other similar comments: Libraries are the new entry point for the users’ data and as such they represent a collection user folder. We hope that with Libraries, users will include folders that until Windows 7 where left out of the game and were less accessible to the indexer. As a result of including all your content under the library system, it will be much easier to back up ALL your content. With that said, libraries do not address the management of the user’s profile “metadata” that is found in the other user storage space like App Data. Data stored in the App Data is very important data for the integrity of the user profile, but it is not viewed by the library system as a user data like pictures, music or documents. In order to back up such data, libraries the best system to use, since you can use either the Shell programming model or the new IShellLibrary API to enumerate the entire contents of a library and you need not care about the specific internal structure.
In future post we will address these issues.
Windows 7 includes a number of new features, such as advances in touch, speech, and handwriting recognition, support for virtual hard disks, improved performance on multi-core processors, improved boot performance, and kernel improvements.Windows 7 adds support for systems using multiple heterogeneous graphics cards from different vendors (Heterogeneous Multi-adapter), a new version of Windows Media Center,a Gadget for Windows Media Center, improved media features, the XPS Essentials Pack and Windows PowerShell being included, and a redesigned Calculator with multiline capabilities including Programmer and Statistics modes along with unit conversion.Many new items have been added to the Control Panel, including ClearType Text Tuner, Display Color Calibration Wizard, Gadgets, Recovery, Troubleshooting, Workspaces Center, Location and Other Sensors, Credential Manager, Biometric Devices, System Icons, and Display. Windows Security Center has been renamed to Windows Action Center (Windows Health Center and Windows Solution Center in earlier builds) which encompasses both security and maintenance of the computer.Nice Blog.
Jobs in the Office
Office Jobs Advice
Information for Office Jobs
The "WINDOWS CLASSIC" VIEW for folders, menues, etc
is my choice, by design, for ease of use, efficiency, and
of course "$productivity". I do not want the eye-candy and
0-wow graphics: it seems a distraction and I still have to read the words. I delete the "My..." folders and use more functional names like; MUSIC and MUSIC-DOWNLOADS.
What kind of user prefers scrolling through all those icons
when the XP "details-list view is easier, faster, accurate ?
Some resources for time motion studies and surveys of
commercial and institutional users would be more usefull
than pushing the product. Recall "A good product
at the right price will sell itself." as did XP and 98SE.
@Yochay Kiriaty - Looking forward to it. I haven't looked at the underlying technology, but from the outside it looked like a reinvention of the wheel. I really hope it isn't. Overall, great job on Windows 7.
Libraries are a nice feature but they were dropped in Vista so it was natural to have them in Windows 7. It'd have been even better if Windows Explorer was enhanced to support navigation to and from NTFS junction points, hardlinks, symlinks instead of giving an error. So long overdue.
Yochay - I hope you cover the bizarre and somewhat inflexible interactions of the Windows 7 libraries with Windows Media Player. I detailed some of these in my comments on your post "Windows 7 .NET Interop Sample Libraries"
I do hope with the libraries functionality of Win7, that you folks clean up the mess of user folders found in Vista and Server08..
I've often written batch files to undertake profile backups, and have tripped over more than once with the recursive symlinks (which are hidden in explorer view) found beneath the AppData folder in particular.. These VERY VERY long directory structures then cause grief when trying to purge copied files indicating a source path <recycle bin> address being too long to delete these..
Directory listings like:
New File 180 reader9rdr-en_US_meta.txt
0% 100% New Dir 0 C:\Users\User1\AppData\Local\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Adobe\Updater6\Install\
New Dir 0 C:\Users\User1\AppData\Local\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Adobe\Updater6\Install\AdobeUpdater\
& Further down the log
New Dir 12 C:\Users\User1\AppData\Local\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Microsoft\Windows\WER\ReportQueue\Report0f087739\
New File 205 75003502.od
Are not uncommon, and there's also the issue of
C:\Users\User1\Documents\ and the symlink
causing grief with scripts and duplicate copies of data - I'd be happy to forward through more info if required about this issue.. I just don't know who/which email to point this too..
PRab - please wait for the next two posts
Why did you have to introduce a new technology? This could all be done with NTFS Junctions (with a little enhancement for remote folders). Now developers will have to learn a whole new technology that has fewer use cases than junctions.
For example the "Pictures" library would be a folder with the "My Pictures" folder inside it and a junction to "Public Pictures" and "My Pictures (D:)".