[DllImport("coredll.dll")]
static extern int SHGetSpecialFolderPath(IntPtr hwndOwner, StringBuilder lpszPath, int nFolder, int fCreate);
None.
None.
None.
//Diferent folders to use.
const int CSIDL_DESKTOP = 0x0000; //Not supported on Smartphone.
const int CSIDL_FAVORITES = 0x0006; //The file system directory that serves as a common repository for the user's favorite items.
const int CSIDL_FONTS = 0x0014; //The virtual folder that contains fonts.
const int CSIDL_PERSONAL = 0x0005; //The file system directory that serves as a common repository for documents.
const int CSIDL_PROGRAM_FILES = 0x0026; //The program files folder.
const int CSIDL_PROGRAMS = 0x0002; //The file system directory that contains the user's program groups, which are also file system directories.
const int CSIDL_STARTUP = 0x0007; //The file system directory that corresponds to the user's Startup program group. The system starts these programs when a device is powered on.
const int CSIDL_WINDOWS = 0x0024; //The Windows folder.
private string getPath(int folderCSIDL)
{
StringBuilder resultPath = new StringBuilder(255);
SHGetSpecialFolderPath((IntPtr)0, resultPath, folderCSIDL, 0);
return resultPath.ToString();
}
The Environment.GetFolderPath Method in .NET Compact Framework 2.0, but it's incomplete as for instance the Program Files special folder is not available.