A lekérdezéshez az ShGetFolderPath függvényt használjuk, amely a Windows\System32 könyvtárában található shell32.dll állományban áll rendelkezésünkre.
[DllImport("shell32.dll")]
public static extern Int32 SHGetFolderPath(IntPtr hwndOwner, Int32 nFolder, IntPtr hToken, UInt32 dwFlags, StringBuilder pszPath);

SHGetFolderPath
public static extern Int32 SHGetFolderPath(
IntPtr hwndOwner,
Int32 nFolder,
IntPtrhToken,
UInt32 dwFlags,
StringBuilder pszPath
);
A rendszerben használt, azonosítóval rendelkező könyvtárak elérési útjának meghatározására szolgál.
Paraméterek
IntPtr hwndOwner
A függvényt hívó ablak azonosítója. Használhatjuk az IntPtr.Zero értéket is.
Int32 nFolder
Annak a könyvtárnak az azonosítója, amelyről információt szeretnénk megtudni.
A könyvtárnevek az operációs rendszer nyelvétől és verziójától függnek. Az alábbiakban a Windows XP magyar változatának könyvtár-elnevezéseit használjuk.
A leggyakrabban használt könyvtárakhoz konstans érték is tartozik. A következő konstansokat használhatjuk:
| Konstans |
Jelentése |
| CSIDL_APPDATA |
Felhasználó\Application Data könyvtár. |
| CSIDL_COMMON_ADMINTOOLS |
Felügyeleti eszközök könyvtára. |
| CSIDL_COMMON_APPDATA |
All Users\Application Data könyvtár. |
| CSIDL_COMMON_DOCUMENTS |
All Users\Dokumentumok könyvtár. |
| CSIDL_COOKIES |
Cookie-k könyvtára. |
| CSIDL_HISTORY |
Felhasználó\Local Settings\History könyvtár. |
| CSIDL_INTERNET_CACHE |
Ideiglenes Internet állományok könyvtára. |
| CSIDL_LOCAL_APPDATA |
Local settings\Application Data könyvtár. |
| CSIDL_MYPICTURES |
Saját képek. |
| CSIDL_PERSONAL |
Saját dokumentumok. |
| CSIDL_PROGRAM_FILES |
Program Files könyvtár. |
| CSIDL_PROGRAM_FILES_COMMON |
Program Files\Common könyvtár. |
| CSIDL_SYSTEM |
Rendszer könyvtár. |
| CSIDL_WINDOWS |
Windows könyvtár. |
A konstansok helyén számértékeket is használhatunk. A számértékkel azonosítható könyvtárak a telepített összetevőktől és komponensektől is függhetnek.
| Érték |
Jelentése |
| 0 |
Felhasználó\Asztal |
| 2 |
Felhasználó\Start Menu\Programs |
| 6 |
Felhasználó\Favorites |
| 7 |
Felhasználó\Start Menu\Programs\Indítópult |
| 8 |
Felhasználó\Recent |
| 9 |
Felhasználó\SendTo |
| 11 |
Felhasználó\Start Menu |
| 13 |
Felhasználó\Dokumentumok\Zene |
| 19 |
Felhasználó\NetHood |
| 20 |
Windows\Fonts |
| 21 |
Felhasználó\Sablonok |
| 22 |
All Users\Start Menu |
| 23 |
All Users\Start Menu\Programs |
| 24 |
All Users\Start Menu\Programs\Indítópult |
| 25 |
All Users\Asztal |
| 27 |
Felhasználó\PrintHood |
| 31 |
All Users\Favorites |
| 45 |
All Users\Sablonok |
| 46 |
All Users\Dokumentumok |
| 47 |
All Users\Start Menu\Programs\Felügyeleti eszközök |
| 53 |
All Users\Dokumentumok\Zene |
| 54 |
All Users\Dokumentumok\Képek |
| 56 |
Windows\Resources |
IntPtrhToken
Az információhoz való hozzáféréshez használandó biztonsági TOKEN. A Windows 2000 előtti verziókban itt csak IntPtr.Zero értéket használhatunk. Az IntPtr.Zero értéket bármely Windows verzióval használhatjuk.
UInt32 dwFlags
Ez a paraméter azt határozza meg, hogy az adott könyvtár alapértelmezett vagy jelenlegi elérési útját akarjuk-e lekérdezni. Ha a jelenlegi elérési útra vagyunk kíváncsiak, akkor a 0, ha az alapértelmezettre, akkor az 1 értéket kell megadnunk.
StringBuilder pszPath
A lekérdezett elérési út ebbe a változóba fog kerülni, ha a lekérdezés sikeres.
Visszatérési érték
Ha a függvény lefutása sikeres volt, akkor a visszatérési érték 0.