Working with Application Folders

Windows Server 2008

Custom applications can use an application folder on the home server to store all of the application's necessary files. If a home server has application folders, you can access information about the folders through the API for Windows Home Server and then use that information in your custom application for Windows Home Server.

ISVs typically install files in the Program Files folder. This is still an option with Windows Home Server, but the Program Files folder is located on the system partition which has a limited size. You can use application folders for storing large amounts of data. However, you should minimize the time these files are kept open to allow Drive Extender to migrate them. Application folders are not duplicated.

Application Folder Properties

An individual application folder is represented as a IApplicationFolder object, and it has read-only properties for the following attributes:

  • Name

  • Folder Duplication status

  • Path

Application Folder Example

Step 1: Create an instance of WHSInfoClass

As with most API objects for Windows Home Server, retrieving information about application folders begins by creating an instance of the WHSInfoClass, as follows:

WHSInfoClass pInfo = new WHSInfoClass();

Step 2: Use a WHSInfoClass method to work with application folders

Scenario 1: Access information about a specific WHS application folder

To get a reference to an existing application folder, use the GetApplicationFolder method of the WHSInfoClass. The GetApplicationFolder method takes a System.Guid structure as the only parameter, and it returns a IApplicationFolder object that represents an existing application folder:

Guid myID = new Guid("61320935-2B2F-4b10-84DC-2DFA819F0A97");
IApplicationFolder pFolder = pInfo.GetApplicationFolder(myID);

Scenario 2: Access information about all WHS application folders

To retrieve all of the application folders on home server, use the GetApplicationFolders method. The GetApplicationFolders method takes no parameters, and it returns an array of IApplicationFolder objects.

Array folders = pInfo.GetApplicationFolders();

The GetApplicationFolders method returns an array of IApplicationFolder objects that you can then loop through to get information about a particular application folder:

foreach (IApplicationFolder pFolder in folders) 
  Console.WriteLine("Name: {0}", pFolder.Name);
  Console.WriteLine("Path: {0}", pFolder.Path);

Scenario 3: Create a new WHS application folder

To create a new Windows Home Server managed application folder, use the CreateApplicationFolder method of the WHSInfoClass. The CreateApplicationFolder method takes a System.Guid object and a string as the input parameters, and it returns a IApplicationFolder object that represents a new application folder:

Guid myID = Guid.NewGuid();
// The string is a friendly name for the folder
string name = "My application folder";
IApplicationFolder pFolder = pInfo.CreateApplicationFolder(myID, name);

You can create a GUID by using any method that you choose, but the parameter for both the CreateApplicationFolder and GetApplicationFolder methods must be of type System.Guid.

For the CreateApplicationFolder example above, the GUID was created with the System.Guid NewGuid() static method. This method creates a new System.Guid object with a new GUID value.

See Also

Community Additions