1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
7 public static partial class Environment
9 public enum SpecialFolder
11 ApplicationData
= SpecialFolderValues
.CSIDL_APPDATA
,
12 CommonApplicationData
= SpecialFolderValues
.CSIDL_COMMON_APPDATA
,
13 LocalApplicationData
= SpecialFolderValues
.CSIDL_LOCAL_APPDATA
,
14 Cookies
= SpecialFolderValues
.CSIDL_COOKIES
,
15 Desktop
= SpecialFolderValues
.CSIDL_DESKTOP
,
16 Favorites
= SpecialFolderValues
.CSIDL_FAVORITES
,
17 History
= SpecialFolderValues
.CSIDL_HISTORY
,
18 InternetCache
= SpecialFolderValues
.CSIDL_INTERNET_CACHE
,
19 Programs
= SpecialFolderValues
.CSIDL_PROGRAMS
,
20 MyComputer
= SpecialFolderValues
.CSIDL_DRIVES
,
21 MyMusic
= SpecialFolderValues
.CSIDL_MYMUSIC
,
22 MyPictures
= SpecialFolderValues
.CSIDL_MYPICTURES
,
23 MyVideos
= SpecialFolderValues
.CSIDL_MYVIDEO
,
24 Recent
= SpecialFolderValues
.CSIDL_RECENT
,
25 SendTo
= SpecialFolderValues
.CSIDL_SENDTO
,
26 StartMenu
= SpecialFolderValues
.CSIDL_STARTMENU
,
27 Startup
= SpecialFolderValues
.CSIDL_STARTUP
,
28 System
= SpecialFolderValues
.CSIDL_SYSTEM
,
29 Templates
= SpecialFolderValues
.CSIDL_TEMPLATES
,
30 DesktopDirectory
= SpecialFolderValues
.CSIDL_DESKTOPDIRECTORY
,
31 Personal
= SpecialFolderValues
.CSIDL_PERSONAL
,
32 MyDocuments
= SpecialFolderValues
.CSIDL_PERSONAL
,
33 ProgramFiles
= SpecialFolderValues
.CSIDL_PROGRAM_FILES
,
34 CommonProgramFiles
= SpecialFolderValues
.CSIDL_PROGRAM_FILES_COMMON
,
35 AdminTools
= SpecialFolderValues
.CSIDL_ADMINTOOLS
,
36 CDBurning
= SpecialFolderValues
.CSIDL_CDBURN_AREA
,
37 CommonAdminTools
= SpecialFolderValues
.CSIDL_COMMON_ADMINTOOLS
,
38 CommonDocuments
= SpecialFolderValues
.CSIDL_COMMON_DOCUMENTS
,
39 CommonMusic
= SpecialFolderValues
.CSIDL_COMMON_MUSIC
,
40 CommonOemLinks
= SpecialFolderValues
.CSIDL_COMMON_OEM_LINKS
,
41 CommonPictures
= SpecialFolderValues
.CSIDL_COMMON_PICTURES
,
42 CommonStartMenu
= SpecialFolderValues
.CSIDL_COMMON_STARTMENU
,
43 CommonPrograms
= SpecialFolderValues
.CSIDL_COMMON_PROGRAMS
,
44 CommonStartup
= SpecialFolderValues
.CSIDL_COMMON_STARTUP
,
45 CommonDesktopDirectory
= SpecialFolderValues
.CSIDL_COMMON_DESKTOPDIRECTORY
,
46 CommonTemplates
= SpecialFolderValues
.CSIDL_COMMON_TEMPLATES
,
47 CommonVideos
= SpecialFolderValues
.CSIDL_COMMON_VIDEO
,
48 Fonts
= SpecialFolderValues
.CSIDL_FONTS
,
49 NetworkShortcuts
= SpecialFolderValues
.CSIDL_NETHOOD
,
50 PrinterShortcuts
= SpecialFolderValues
.CSIDL_PRINTHOOD
,
51 UserProfile
= SpecialFolderValues
.CSIDL_PROFILE
,
52 CommonProgramFilesX86
= SpecialFolderValues
.CSIDL_PROGRAM_FILES_COMMONX86
,
53 ProgramFilesX86
= SpecialFolderValues
.CSIDL_PROGRAM_FILESX86
,
54 Resources
= SpecialFolderValues
.CSIDL_RESOURCES
,
55 LocalizedResources
= SpecialFolderValues
.CSIDL_RESOURCES_LOCALIZED
,
56 SystemX86
= SpecialFolderValues
.CSIDL_SYSTEMX86
,
57 Windows
= SpecialFolderValues
.CSIDL_WINDOWS
,
60 // These values are specific to Windows and are known to SHGetFolderPath, however they are
61 // also the values used in the SpecialFolder enum. As such, we keep them as constants
62 // with their Win32 names, but keep them here rather than in Interop.Kernel32 as they're
63 // used on all platforms.
64 private static class SpecialFolderValues
66 internal const int CSIDL_APPDATA
= 0x001a;
67 internal const int CSIDL_COMMON_APPDATA
= 0x0023;
68 internal const int CSIDL_LOCAL_APPDATA
= 0x001c;
69 internal const int CSIDL_COOKIES
= 0x0021;
70 internal const int CSIDL_FAVORITES
= 0x0006;
71 internal const int CSIDL_HISTORY
= 0x0022;
72 internal const int CSIDL_INTERNET_CACHE
= 0x0020;
73 internal const int CSIDL_PROGRAMS
= 0x0002;
74 internal const int CSIDL_RECENT
= 0x0008;
75 internal const int CSIDL_SENDTO
= 0x0009;
76 internal const int CSIDL_STARTMENU
= 0x000b;
77 internal const int CSIDL_STARTUP
= 0x0007;
78 internal const int CSIDL_SYSTEM
= 0x0025;
79 internal const int CSIDL_TEMPLATES
= 0x0015;
80 internal const int CSIDL_DESKTOPDIRECTORY
= 0x0010;
81 internal const int CSIDL_PERSONAL
= 0x0005;
82 internal const int CSIDL_PROGRAM_FILES
= 0x0026;
83 internal const int CSIDL_PROGRAM_FILES_COMMON
= 0x002b;
84 internal const int CSIDL_DESKTOP
= 0x0000;
85 internal const int CSIDL_DRIVES
= 0x0011;
86 internal const int CSIDL_MYMUSIC
= 0x000d;
87 internal const int CSIDL_MYPICTURES
= 0x0027;
89 internal const int CSIDL_ADMINTOOLS
= 0x0030; // <user name>\Start Menu\Programs\Administrative Tools
90 internal const int CSIDL_CDBURN_AREA
= 0x003b; // USERPROFILE\Local Settings\Application Data\Microsoft\CD Burning
91 internal const int CSIDL_COMMON_ADMINTOOLS
= 0x002f; // All Users\Start Menu\Programs\Administrative Tools
92 internal const int CSIDL_COMMON_DOCUMENTS
= 0x002e; // All Users\Documents
93 internal const int CSIDL_COMMON_MUSIC
= 0x0035; // All Users\My Music
94 internal const int CSIDL_COMMON_OEM_LINKS
= 0x003a; // Links to All Users OEM specific apps
95 internal const int CSIDL_COMMON_PICTURES
= 0x0036; // All Users\My Pictures
96 internal const int CSIDL_COMMON_STARTMENU
= 0x0016; // All Users\Start Menu
97 internal const int CSIDL_COMMON_PROGRAMS
= 0X0017; // All Users\Start Menu\Programs
98 internal const int CSIDL_COMMON_STARTUP
= 0x0018; // All Users\Startup
99 internal const int CSIDL_COMMON_DESKTOPDIRECTORY
= 0x0019; // All Users\Desktop
100 internal const int CSIDL_COMMON_TEMPLATES
= 0x002d; // All Users\Templates
101 internal const int CSIDL_COMMON_VIDEO
= 0x0037; // All Users\My Video
102 internal const int CSIDL_FONTS
= 0x0014; // windows\fonts
103 internal const int CSIDL_MYVIDEO
= 0x000e; // "My Videos" folder
104 internal const int CSIDL_NETHOOD
= 0x0013; // %APPDATA%\Microsoft\Windows\Network Shortcuts
105 internal const int CSIDL_PRINTHOOD
= 0x001b; // %APPDATA%\Microsoft\Windows\Printer Shortcuts
106 internal const int CSIDL_PROFILE
= 0x0028; // %USERPROFILE% (%SystemDrive%\Users\%USERNAME%)
107 internal const int CSIDL_PROGRAM_FILES_COMMONX86
= 0x002c; // x86 Program Files\Common on RISC
108 internal const int CSIDL_PROGRAM_FILESX86
= 0x002a; // x86 C:\Program Files on RISC
109 internal const int CSIDL_RESOURCES
= 0x0038; // %windir%\Resources
110 internal const int CSIDL_RESOURCES_LOCALIZED
= 0x0039; // %windir%\resources\0409 (code page)
111 internal const int CSIDL_SYSTEMX86
= 0x0029; // %windir%\system32
112 internal const int CSIDL_WINDOWS
= 0x0024; // GetWindowsDirectory()