2013-03-12 128 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

相关问题