2013-03-12 52 views
7

摘要:幾個不同的用戶將在特定的機器上使用我的應用程序。我希望應用程序將其數據存儲在本機上的單個公共文件中,而不管哪個用戶正在運行該應用程序。使用'ApplicationData'或'LocalApplicationData'存儲所有用戶共有的文件?

爲了達到我想要的,我想知道這個問題是否可能是相關的:Difference between 'SpecialFolder.LocalApplicationData' and 'SpecialFolder.ApplicationData'?

從這個問題和它的答案似乎是:

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) 

特定到機器。我通過谷歌搜索發現的一些信息證實了這一點。但是,我也發現信息說,LocalApplicationData用戶特定

那麼,這是真的嗎?誰能告訴我什麼是「用戶特定」和「機器特定」的真正含義?

下面是我的想法:如果LocalApplicationData是機器特定的,那麼我可以使用它作爲讓我的應用程序將所有數據保存到所有用戶的單個公用文件的基礎。

我也想知道關於ApplicationData文件夾:

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) 

我應該改用ApplicationData得到我想要的東西?

+1

如有疑問[閱讀文檔(http://msdn.microsoft.com/en-us/library/system.environment.specialfolder。 aspx)。CommonApplicationData。 – 2013-03-12 15:51:56

+1

@RaymondChen爲什麼不是這個答案,因爲它是答案? – pixelbadger 2013-03-12 15:59:19

+1

可能因爲它不是答案,c:\ programdata不可寫。 Windows的默認安裝不提供所有用戶都可以寫入的文件夾。如果這很重要,那麼你需要創建一個,並給每個人寫訪問權限。之後,你可能會發現,處理一個用戶搞砸另一個用戶的數據而沒有備份可能是一件非常頭疼的事情。這就是文件服務器存在的原因。 – 2013-03-12 17:29:56

回答

5

ApplicationDataLocalApplicationData都只能被當前登錄的用戶訪問。這兩者之間的區別在於ApplicationData被複制並同步到用戶在企業環境中使用的其他設備。它將用於存儲用戶的偏好。

正如雷蒙建議(see docs),你會想用不同的文件夾。CommonDocuments將是一個很好的選擇,爲所有用戶之間共享文檔。CommonMusic如果你存儲的音樂等等。

如果你想存儲應用程序特定的文件使用 Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)

+2

簡而言之:兩者都是用戶特定的,'LocalApplicationData'也是特定於機器的。 – MicroVirus 2015-04-21 19:06:22

相關問題