C# 使用';应用数据';或';LocalApplicationData';要存储所有用户共用的文件?

C# 使用';应用数据';或';LocalApplicationData';要存储所有用户共用的文件?,c#,.net,.net-3.5,C#,.net,.net 3.5,摘要:几个不同的用户将在特定的计算机上使用我的应用程序。我希望应用程序将其数据存储在此计算机上的单个公共文件中,而不管哪个用户正在运行应用程序 为了实现我的目标,我想知道这个问题是否相关: 从该问题及其答案看来: Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) 是特定于机器的。我在谷歌上找到的一些信息证实了这一点。但是,我还发现有信息表明,LocalApplicationData是特定于用户的

摘要:几个不同的用户将在特定的计算机上使用我的应用程序。我希望应用程序将其数据存储在此计算机上的单个公共文件中,而不管哪个用户正在运行应用程序

为了实现我的目标,我想知道这个问题是否相关:

从该问题及其答案看来:

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) 
是特定于机器的。我在谷歌上找到的一些信息证实了这一点。但是,我还发现有信息表明,
LocalApplicationData
是特定于用户的

那么,哪一个是真的?谁能告诉我“特定于用户”和“特定于机器”的真正含义是什么

下面是我的想法:如果
LocalApplicationData
是机器特定的,那么我可以使用它作为基础,让我的应用程序为所有用户将其所有数据保存到一个公共文件中

我还想知道
ApplicationData
文件夹:

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

我是否应该改为使用
ApplicationData
来获取我想要的内容?

只有当前登录的用户才能访问
ApplicationData
LocalApplicationData
。这两者之间的区别在于,
ApplicationData
被复制并同步到用户在企业环境中使用的其他设备。它将用于存储用户的首选项

正如Raymond()所建议的那样,您需要使用不同的文件夹<代码>通用文档对于所有用户共享文档来说是一个不错的选择<代码>公共音乐如果您正在存储音乐等

如果要存储特定于应用程序的文件,请使用:

Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)

当有疑问时。CommonApplicationData.@RaymondChen既然这是答案,为什么这不是答案?可能是因为它不是答案,c:\programdata是不可写的。Windows的默认安装不提供所有用户都可以写入的文件夹。如果这很重要,那么您需要创建一个并为每个人提供写访问权限。稍后,您可能会发现,处理一个用户将另一个用户的数据搞砸而没有备份可能是一件非常头痛的事情。这就是文件服务器存在的原因。我对您的问题进行了大量编辑,以改进其重点,并希望使其对未来的读者更有用。如果您对我的修订不满意,请告诉我。简而言之:两者都是特定于用户的,
LocalApplicationData
也是特定于机器的。