我怎样才能得到当前用户的“应用程序数据”文件夹的path?
1)如何找出用户正在使用的Windows安装驱动器? 我需要这个导航到DocumentsandSettings中的ApplicationData 。
2)也如何获得用户名,以便我可以转到ApplicaitionData。 例如:“D:\ Documents and Settings \ user \ Application Data”。
看看结合Environment.GetFolderPath和Environment.SpecialFolder来做到这一点。
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
根据你在做什么,你可能也想看看
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
如果用户位于域中,则只会将其存储在本地的AppData
文件夹中,而不会与其漫游configuration文件同步。
看看Environment.SpecialFolders
Environment.SpecialFolder.ApplicationData; Environment.SpecialFolder.System
这应该让你围绕用户名要求。
看看System.Environment类及其属性和方法,例如:
string systemDir = System.Environment.SystemDirectory; string docs = System.Environment.GetFolderPath( System.Environment.SpecialFolder.MyDocuments)); string systemDrive = System.IO.Path.GetPathRoot(systemDir);
第一个例子返回“ C:\ Windows \ system32 ”,第二个返回“ C:\ Documents and Settings \ USERNAME \ My Documents ”。
尝试这个:
string filePath = Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData);
1)如何找出用户正在使用的Windows安装驱动器?
var systemDrive = Environment.ExpandEnvironmentVariables("%systemdrive%");
我需要这个导航到DocumentsandSettings中的ApplicationData。
您并不需要获取系统驱动器或当前login的用户名的值来实现此目的。 有预定义的环境variables%localAppData%
和%appData%
给你这些目录的完全合格的path,如下面的代码所示:
var localApplicationData = Environment.ExpandEnvironmentVariables("%localappdata%"); //this gives C:\Users\<userName>\AppData\Local var roamingApplicationData = Environment.ExpandEnvironmentVariables("%appdata%"); //this gives C:\Users\<userName>\AppData\Roaming
2)也如何获得用户名,以便我可以转到ApplicaitionData。 例如:“D:\ Documents and Settings \ user \ Application Data”。
同样,您不需要用户名来获取应用程序数据path,正如我上面讨论的那样。 不过,为了知识的缘故,您可以从%username%
环境variables中获取它,如下所示:
var currentUserName = Environment.ExpandEnvironmentVariables("%username%");