2013-08-20 106 views
1

对于dot net程序,哪里是存储序列化数据的“正确”位置?我应该在哪里保存序列化的数据文件?

在/ user/username文件夹中? Program Files/MyAppName /?其他地方?

+1

如果不同的用户存储不同的数据,那么将其存储在他们的用户帐户而不是程序文件中是有意义的。 –

+1

取决于数据所代表的内容,它的使用环境是什么,它有多大,使用频率如何等等。提供关于你想要达到什么样的好答案的更多信息。 – Alex

+0

我没有搜索应用程序设置,因为这是关于应用程序数据的更多信息,而不是设置。它有时可能是一个灰色地带。对不起,重复。 – MrGibbage

回答

0

This blog post来自微软的Pat Altimore建议了许多位置,具体取决于您尝试存储的数据类型。

.NET提供了特殊的枚举值,您可以将其传递到System.Environment.GetFolderPath,以获取所需的“特殊”文件夹。

简而言之:

  • 如果是用户特定的数据,使用SpecialFolder.ApplicationData
  • 如果它是机器特定的数据,请使用SpecialFolder.CommonApplicationData

对于机器特定的数据,您可能还需要以管理员身份运行该程序,否则您将不具有对该位置的写入访问权限。

0

我想说这取决于你想要存储什么类型的日期。如果是用户特定的日期,那么如果它不是用户特定的数据,我建议由

Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData);

使用返回的路径,也就是说,它的数据通过你的程序的所有用户,然后将其存储在一个文件夹中共享您的安装路径可能更合适。

+0

我恭敬地不同意你的结束语;建议不要将机器特定的数据存储在安装路径中。 Windows为这些数据提供“通用应用程序数据”位置。安装路径(即“Program Files”文件夹)仅用于存储*应用程序文件。 – BTownTKD

相关问题