2016-10-07 8 views
1

Я пытаюсь управлять некоторыми данными с помощью C# porgram. Данные обычно находятся на рабочем столе или аналогичном базовом месте Windows. Прямо сейчас я печатаю полный путь к определенным папкам, но я знаю, что есть ярлыки, такие как %ProgramFiles(x86)%, %appdata%.Есть ли еще ярлыки, например% appdata%?

Есть ли еще их? Могу ли я использовать их в своей программе?

+3

Откройте cmd.exe и введите 'set' в приглашении для отображения переменных среды. Любой из них можно использовать в форме '% xxxx% '. Из .NET они доступны через ['Environment.GetEnvironmentVariable (...)'] (https://msdn.microsoft.com/en-us/library/77zkk0b6%28v=vs.110%29.aspx) метод. – Iridium

+0

Да ['Environment.SpecialFolder'] (https://msdn.microsoft.com/en-us/library/system.environment.specialfolder (v = vs.110) .aspx) для путей. –

+0

Просто отметив, что SpecialFolder содержит такие элементы, как «Ресурсы», которые не могут использоваться в формате '% Resources%', но могут использоваться в программе. – stuartd

ответ

0

Существует множество системных переменных. Да, вы можете использовать их в своей программе.

Чтобы назвать несколько:

Environment Variable Path 
%ALLUSERSPROFILE% C:\ProgramData 
%APPDATA% C:\Users\{username}\AppData\Roaming 
%COMMONPROGRAMFILES% C:\Program Files\Common Files 
%COMMONPROGRAMFILES(x86)% C:\Program Files (x86)\Common Files 
%COMSPEC% C:\Windows\System32\cmd.exe 
%HOMEDRIVE% C: 
%HOMEPATH% C:\Users\{username} 
%LOCALAPPDATA% C:\Users\{username}\AppData\Local 
%PROGRAMDATA% C:\ProgramData 
%PROGRAMFILES% C:\Program Files 
%PROGRAMFILES(X86)% C:\Program Files (x86) (only in 64-bit version) 
%PUBLIC% C:\Users\Public 
%SystemDrive% C: 
%SystemRoot% C:\Windows 
%TEMP% and %TMP% C:\Users\{username}\AppData\Local\Temp 
%USERPROFILE% C:\Users\{username} 
%WINDIR% C:\Windows 
0

Это переменные окружения, и вы можете добавлять новые самостоятельно или редактировать их, как вам нравится. Here - некоторые из стандартных, которые уже установлены операционной системой. Чтобы получить список всех текущих переменных среды, откройте командную строку и введите SET. Или, программно, используйте Environment.GetEnvironmentVariable(). Все они могут использоваться в вашем приложении.

1

Вы можете, но вы, вероятно, предпочитают использовать Environment.GetFolderPath с Environment.SpecialFolder перечисления. Например:

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) 

На момент написания Environment.SpecialFolder перечисления имеет значение:

Desktop, Programs, MyDocuments, Personal, Favorites, Startup, Recent, SendTo, StartMenu, MyMusic, MyVideos, DesktopDirectory, MyComputer, NetworkShortcuts, Fonts, Templates, CommonStartMenu, CommonPrograms, CommonStartup, CommonDesktopDirectory, ApplicationData, PrinterShortcuts, LocalApplicationData, InternetCache, Cookies, History, CommonApplicationData, Windows, System, ProgramFiles, MyPictures, UserProfile, SystemX86, ProgramFilesX86, CommonProgramFiles, CommonProgramFilesX86, CommonTemplates, CommonDocuments, CommonAdminTools, AdminTools, CommonMusic, CommonPictures, CommonVideos, Resources, LocalizedResources, CommonOemLinks, CDBurning

Если вы затем должны использовать эту информацию, чтобы построить несколько путей:

var somePath = System.IO.Path.Combine(
    Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), 
    @"some\path\into\this\folder");