2

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)現在のユーザー フォルダーを返しますが、システム アカウントでは次のように返します。

C:\Windows\system32\config\systemprofile\AppData\Roaming\

問題は、システム アカウントを使用してすべてのユーザーのAppDataフォルダーを取得する方法です。

4

2 に答える 2

0

私は、これはあなたを助けることができると思います:

//List all the users
List<String> usersList = new List<String>();
ManagementObjectSearcher sidQuery = new ManagementObjectSearcher("SELECT * FROM Win32_Account");
ManagementObjectCollection results = sidQuery.Get();
foreach (ManagementObject result in results)
{
   usersList.Add(result["Name"])
}

//Showing all the partitions letters 
String[] strDrives = Environment.GetLogicalDrives();
Foreach (string strDrive in strDrives)
{
  //Check if profil has AppData folder
  List<String> usersAppData = new List<String>();
  String pathAppData = String.Empty;
  foreach(String user in usersList)
  {
     pathAppData = String.Format("{0}\Users\{1}\AppData", strDrive, user);
     if(Directory.Exists(pathAppData ))
     {
        usersAppData.Add(pathAppData);
     }
  }
}

    //Here, you've got all the users AppData folder in usersAppData
于 2013-08-02T12:53:47.940 に答える