2010-06-22 41 views

回答

11

Environment.SpecialFolder.ApplicationDataEnvironment.SpecialFolder.CommonApplicationData

+1

+1爲特殊文件夾; @Hema:請參閱http://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspx – 2010-06-22 10:33:16

9

這會給你的路徑,「所有用戶」應用程序數據文件夾。

string path = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData); 
+4

如果您需要讀取/寫入權限,此路徑僅提供讀取訪問權限,請查看此鏈接:http:// www.codeproject.com/Tips/61987/Allow-write-modify-access-to-CommonApplicationData – 2012-05-12 23:48:01

0

每個用戶的AppData文件夾存儲在註冊表中。

使用此路徑:

const string regKeyFolders = @"HKEY_USERS\<SID>\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"; 
const string regValueAppData = @"AppData"; 

給出一個包含用戶的SID變量SID字符串,就可以得到他們的應用程序數據的路徑是這樣的:

string path=Registry.GetValue(regKeyFolders.Replace("<SID>", sid), regValueAppData, null) as string; 
5

從@德里克的回答改編。以下代碼將爲計算機上的每個用戶找到本地應用程序數據的路徑,並將路徑放入字符串列表中。

 const string regKeyFolders = @"HKEY_USERS\<SID>\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"; 
     const string regValueAppData = @"Local AppData"; 
     string[] keys = Registry.Users.GetSubKeyNames(); 
     List<String> paths = new List<String>(); 

     foreach (string sid in keys) 
     { 
      string appDataPath = Registry.GetValue(regKeyFolders.Replace("<SID>", sid), regValueAppData, null) as string; 
      if (appDataPath != null) 
      { 
       paths.Add(appDataPath); 
      } 
     } 
相關問題