获取C#.NET中的所有Environment.SpecialFolder.ApplicationData

时间:2013-10-24 08:46:29

标签: c#

我希望将Windows服务中所有用户的Environment.SpecialFolder.ApplicationData安装为具有管理员权限的本地系统。

示例:

如果我有Tom,Matt和Christine用户,我需要:

  

C:\用户\马特\应用程序数据\本地

     

C:\用户\汤姆\应用程序数据\本地

     

C:\用户\恭\应用程序数据\本地

提前致谢!

1 个答案:

答案 0 :(得分:0)

以下是您可以通过该代码找到任何用户的ApplicationData路径 -

  1. 首先找出当前用户的名字。
  2. 找出应用程序数据路径。
  3. 现在从应用程序数据路径替换当前用户名。

    /// <summary>
    /// GetAppDatafolder
    /// </summary>
    private static void GetAppDatafolder(string otherUserName)
    {
        var currentUserIdentity = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
        var currentUserName = (currentUserIdentity.Contains(@"\")) ? (currentUserIdentity.Split('\\')[1]) : currentUserIdentity;
        var currentAppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
        var otherUserAppDataPath = currentAppDataPath.Replace(currentUserName, otherUserName);
    
        Console.WriteLine(string.Format("Current User AppDataPath : {0}", currentAppDataPath));
        Console.WriteLine(string.Format("{0} AppDataPath : {1}", otherUserName, otherUserAppDataPath));
    }