The code in this post is based on previous work by Alon and other Sela team members. Great work all.
Forward
Just to clarify the terminology used: Every Windows 7 library is represented as an XML file with the .library-ms extension. The common libraries files are commonly stored in: C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Libraries\
So if, for example, we work now with the Pictures library, than in the following sections:
libraryName = Pictures
locationPath = C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Libraries\
Note: you can create library files wherever you want, not necessarily in the mentioned folder.
Features
Creating a new library
-------------------------------
ShellLibrary shellLibrary = new ShellLibrary(libraryName, locationPath, overwriteExisting);
Add folder to an existing library
--------------------------------------------
using (ShellLibrary shellLibrary = ShellLibrary.Load(libraryName, folderPath, isReadOnly))
{
shellLibrary.Add(folderToAdd);
}
Read more: Arik Poznanski's Blog