Pracuje se soubory nebo jen potřebujete získat správnou cestu některého ze systémových adresářů? Vhodným řešením je použití třídy Environment a výčtu SpecialFolder(s)…
Takže např. pokud potřebuje cestu adresáře Program Files (x86) vždy na konkrétním počítači, tak stačí použít SpecialFolder.ProgramFilesX86 za pomoci metody Environment.GetFolderPath. V kódu se je pak použití následující:
string programFilesPath = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86);
Přehled speciálních adresářů včetně cest (na Windows 8 Pro):
SpecialFolder | Cesta |
---|---|
Desktop | C:\Users\{LoggedUserName}\Desktop |
Programs | C:\Users\{LoggedUserName}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs |
MyDocuments | C:\Users\{LoggedUserName}\Documents |
MyDocuments | C:\Users\{LoggedUserName}\Documents |
Favorites | C:\Users\{LoggedUserName}\Favorites |
Startup | C:\Users\{LoggedUserName}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup |
Recent | C:\Users\{LoggedUserName}\AppData\Roaming\Microsoft\Windows\Recent |
SendTo | C:\Users\{LoggedUserName}\AppData\Roaming\Microsoft\Windows\SendTo |
StartMenu | C:\Users\{LoggedUserName}\AppData\Roaming\Microsoft\Windows\Start Menu |
MyMusic | C:\Users\{LoggedUserName}\Music |
MyVideos | C:\Users\{LoggedUserName}\Videos |
DesktopDirectory | C:\Users\{LoggedUserName}\Desktop |
MyComputer | |
NetworkShortcuts | C:\Users\{LoggedUserName}\AppData\Roaming\Microsoft\Windows\Network Shortcuts |
Fonts | C:\Windows\Fonts |
Templates | C:\Users\{LoggedUserName}\AppData\Roaming\Microsoft\Windows\Templates |
CommonStartMenu | C:\ProgramData\Microsoft\Windows\Start Menu |
CommonPrograms | C:\ProgramData\Microsoft\Windows\Start Menu\Programs |
CommonStartup | C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup |
CommonDesktopDirectory | C:\Users\Public\Desktop |
ApplicationData | C:\Users\{LoggedUserName}\AppData\Roaming |
PrinterShortcuts | C:\Users\{LoggedUserName}\AppData\Roaming\Microsoft\Windows\Printer Shortcuts |
LocalApplicationData | C:\Users\{LoggedUserName}\AppData\Local |
InternetCache | C:\Users\{LoggedUserName}\AppData\Local\Microsoft\Windows\Temporary Internet Files |
Cookies | C:\Users\{LoggedUserName}\AppData\Roaming\Microsoft\Windows\Cookies |
History | C:\Users\{LoggedUserName}\AppData\Local\Microsoft\Windows\History |
CommonApplicationData | C:\ProgramData |
Windows | C:\Windows |
System | C:\Windows\system32 |
ProgramFiles | C:\Program Files (x86) |
MyPictures | C:\Users\{LoggedUserName}\Pictures |
UserProfile | C:\Users\{LoggedUserName} |
SystemX86 | C:\Windows\SysWOW64 |
ProgramFilesX86 | C:\Program Files (x86) |
CommonProgramFiles | C:\Program Files (x86)\Common Files |
CommonProgramFilesX86 | C:\Program Files (x86)\Common Files |
CommonTemplates | C:\ProgramData\Microsoft\Windows\Templates |
CommonDocuments | C:\Users\Public\Documents |
CommonAdminTools | C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools |
AdminTools | C:\Users\{LoggedUserName}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Administrative Tools |
CommonMusic | C:\Users\Public\Music |
CommonPictures | C:\Users\Public\Pictures |
CommonVideos | C:\Users\Public\Videos |
Resources | C:\Windows\resources |
LocalizedResources | |
CommonOemLinks | |
CDBurning | C:\Users\{LoggedUserName}\AppData\Local\Microsoft\Windows\Burn\Burn |
A na závěr postup jak rychle projít nebo zjistit všechny cesty speciálních adresářů:
StringBuilder builder = new StringBuilder();
foreach (Environment.SpecialFolder specialFolder in Enum.GetValues(typeof (Environment.SpecialFolder)))
{
builder.AppendLine(string.Format("{0}: {1}", specialFolder, Environment.GetFolderPath(specialFolder)));
}
string specialFolders = builder.ToString();
Nejnovější komentáře