Thorsten Lorenz
Thorsten Lorenz

Reputation: 11847

What directories do the different Application SpecialFolders point to in WindowsXP and Windows Vista

Namely I have:

I am unclear as to were these point to in Windows XP and/or Windows Vista.

What I found so far is that the ApplicationData points to the ApplicationData Folder for the current user in XP and the roaming application data folder in Vista.

I would also like to know if there are general guidelines on when to use which.

Upvotes: 33

Views: 50872

Answers (3)

MadBoy
MadBoy

Reputation: 11104

It's easy to check. Use Environment.GetFolderPath(...); and use MessageBox or Console.Write and it will show you where it points to. You only have to make a simple app that will display paths for you and run it under Windows XP or Windows Vista.

using System;

namespace EnvironmentCheck
{
    class Program
    {
        static void Main(string[] args)
    {
        Console.Write(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\n");
        Console.Write(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)+ "\n");
        Console.Write(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)+ "\n");
    }
}
}

My results on Win 7 x64

C:\Users\myUsername\AppData\Roaming
C:\ProgramData
C:\Users\myUsername\AppData\Local

Upvotes: 29

Oran Dennison
Oran Dennison

Reputation: 3297

For anyone who wants to know what these special folders evaluate to on Windows XP but don't have XP to run it on, here's what I get when running @MadBoy's code:

ApplicationData:

C:\Documents and Settings\YourAccountHere\Application Data

CommonApplicationData:

C:\Documents and Settings\All Users\Application Data

LocalApplicationData:

C:\Documents and Settings\YourAccountHere\Local Settings\Application Data

Upvotes: 8

MSalters
MSalters

Reputation: 179779

There's no single answer to that. In fact, that's precisely why these "SpecialFolder"s are defined. You use those instead of a hardcoded path.

Environment.SpecialFolder.ApplicationData is the most common one. This folder holds per-user, non-temporary application-specific data, other than user documents. A common example would be a settings or configuration file.

Environment.SpecialFolder.CommonApplicationData is similar, but shared across users. You could use this to store document templates, for instance.

Environment.SpecialFolder.LocalApplicationData is a non-roaming alternative for ApplicationData. As such, you'd never store important data there. However, because it's non-roaming it is a good location for temporary files, caches, etcetera. It's typically on a local disk.

Upvotes: 34

Related Questions