我应该在哪里保存我的序列化数据文件? [复制]
Posted
技术标签:
【中文标题】我应该在哪里保存我的序列化数据文件? [复制]【英文标题】:Where should I save my serialized data file? [duplicate] 【发布时间】:2013-08-22 12:42:56 【问题描述】:对于点网程序,存储序列化数据的“正确”位置在哪里?
在 /user/username 文件夹中?程序文件/MyAppName/?别的地方?
【问题讨论】:
如果不同的用户存储不同的数据,那么将其存储在他们的用户帐户中而不是程序文件中是有意义的。 取决于数据代表什么,它的使用环境是什么,它有多大,它的使用频率等。提供更多关于你想要达到什么目的的信息以获得好的答案。跨度> 我没有搜索应用程序设置,因为这更多的是关于应用程序数据,而不是设置。有时它可能是一个灰色区域。抱歉重复了。 【参考方案1】:来自 Microsoft 的 Pat Altimore 的This blog post 建议了多个位置,具体取决于您尝试存储的数据类型。
.NET 提供了特殊的枚举值,您可以将其传递到System.Environment.GetFolderPath
,以获得所需的“特殊”文件夹。
简而言之:
如果是用户特定的数据,请使用SpecialFolder.ApplicationData
。
如果是特定于机器的数据,请使用SpecialFolder.CommonApplicationData
。
对于特定于机器的数据,您可能还需要以管理员身份运行程序,否则您将无法对该位置进行写访问。
【讨论】:
【参考方案2】:我会说这取决于您要存储的日期类型。如果是用户特定日期,那么我建议使用
返回的路径Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData);
如果不是特定于用户的数据,也就是说,它是程序的所有用户共享的数据,那么将其存储在安装路径下的文件夹中可能更合适。
【讨论】:
我非常不同意你的结束语;不建议将特定于机器的数据存储在安装路径中。 Windows 为此类数据提供了“通用应用程序数据”位置。安装路径(即“Program Files”文件夹)旨在存储仅应用程序文件。以上是关于我应该在哪里保存我的序列化数据文件? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
使用 FireMonkey 及其跨平台,我应该在哪里存储我的应用程序数据?
作为开发人员,我应该如何使用 Windows Vista(和 Windows 7)中的特殊文件夹?