代码之家  ›  专栏  ›  技术社区  ›  SyncMaster

如何获取当前用户的“应用程序数据”文件夹的路径?

c#
  •  35
  • SyncMaster  · 技术社区  · 15 年前

    1) 如何找到用户正在使用的Windows安装驱动器。?我需要这个导航到 应用数据 在文档和设置中。

    2) 还有,我怎样才能拿到 用户名

    6 回复  |  直到 6 年前
        1
  •  73
  •   Martin Harris    15 年前

    看看组合 Environment.GetFolderPath Environment.SpecialFolder 这样做。

    Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
    
        2
  •  19
  •   TotPeRo    8 年前

    根据您正在做的事情,您可能还需要查看

    Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
    

    AppData 文件夹,但未与其漫游配置文件同步。

        3
  •  5
  •   Eoin Campbell    15 年前

    看一看这本书 Environment.SpecialFolders

    Environment.SpecialFolder.ApplicationData;
    Environment.SpecialFolder.System
    

    这也会让你绕过用户名的要求。

        4
  •  3
  •   M4N    15 年前

    查看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 ".

        5
  •  2
  •   Magnus Johansson    15 年前

    试试这个:

    string filePath = Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData);
    
        6
  •  1
  •   RBT    8 年前

    他在工作。?

        var systemDrive =  Environment.ExpandEnvironmentVariables("%systemdrive%");
    

    我需要这个来导航到中的应用程序数据

    要实现这一点,您实际上不需要获取系统驱动器或当前登录用户名的值。有预定义的环境变量 %localAppData% %appData% 这将为您提供这些目录的完全限定路径,如下面的代码所示:

    var localApplicationData = Environment.ExpandEnvironmentVariables("%localappdata%"); 
    //this gives C:\Users\<userName>\AppData\Local
    
    var roamingApplicationData = Environment.ExpandEnvironmentVariables("%appdata%");
    //this gives C:\Users\<userName>\AppData\Roaming
    

    应用数据。?例如:“D:\Documents and Settings\user\Application

    同样,您不需要用户名来获取应用程序数据路径,正如我上面所讨论的。不过,为了知识的缘故,你还是可以从别人那里得到它的 %username% 环境变量如下所示:

        var currentUserName = Environment.ExpandEnvironmentVariables("%username%");