我怎样才能得到当前用户的“应用程序数据”文件夹的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%");