是否有更多的快捷方式,如%appdata%?

时间:2016-10-07 12:29:42

标签: c# windows shortcuts

我正在尝试使用C#porgram管理一些数据。数据通常位于桌面或类似的基本Windows位置。现在我输入特定文件夹的完整路径,但我知道有%ProgramFiles(x86)%%appdata%等快捷方式。

还有更多吗?我可以在我的程序中使用它们吗?

4 个答案:

答案 0 :(得分:2)

有很多系统变量。是的,你可以在你的程序中使用它们。

仅举几例:

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

答案 1 :(得分:2)

您可以,但您可能更愿意将Environment.GetFolderPathEnvironment.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");

答案 2 :(得分:0)

这些是环境变量,您可以自己添加新的或者根据需要编辑它们。 Here是一些已由操作系统设置的默认值。要获取所有当前环境变量的列表,请打开命令提示符并输入SET。或者,以编程方式使用Environment.GetEnvironmentVariable()。所有这些都可以在您的应用程序中使用。

答案 3 :(得分:0)

是的,还有更多,是的,你可以使用一个术语。 例如。桌面文件夹是Environment.SpecialFolder.Desktop 看看: https://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspx