0

管理者権限を持つローカル システムとしてインストールされた Windows サービスから、すべてのユーザーの Environment.SpecialFolder.ApplicationData を取得したいと考えています。

例:

Tom、Matt、Christine のユーザーがいる場合、次のものが必要です。

C:\Users\Matt\AppData\Local

C:\Users\Tom\AppData\Local

C:\Users\Christine\AppData\Local

前もって感謝します!

4

1 に答える 1

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));
    }
    
于 2013-10-24T09:33:51.620 に答える