As it turns out via the SharePoint API you can set the content type list for each folder in a document library. This was a shock to me because you can't do this in the SharePoint UI. You can only change the content types allowed at the root folder level from the SharePoint UI.
public static void SetContentTypes(
SPList lib, SPFolder folder, List<SPContentTypeId> ntypes) {
folder.UniqueContentTypeOrder = ntypes;
folder.Update();
}
This works well except for a few consequences:
- When uploading a document (via the upload button) the default content type from the root folder will be used. This can be a big problem when you are uploading a massive amount of files because you have to go through and edit each file to change the content type.
- Once you set the content types for a folder, they can't be changed via the SharePoint UI. Except for the root folder of a document library.
It seems to me that either the SharePoint UI is partially backed in regard to content type editing. Or the perhaps the UI was "feature limited" late in the game? Either way it is possible to take advantage of the API for a given situation.