对于dot net程序,哪里是存储序列化数据的“正确”位置?我应该在哪里保存序列化的数据文件?
在/ user/username文件夹中? Program Files/MyAppName /?其他地方?
对于dot net程序,哪里是存储序列化数据的“正确”位置?我应该在哪里保存序列化的数据文件?
在/ user/username文件夹中? Program Files/MyAppName /?其他地方?
This blog post来自微软的Pat Altimore建议了许多位置,具体取决于您尝试存储的数据类型。
.NET提供了特殊的枚举值,您可以将其传递到System.Environment.GetFolderPath
,以获取所需的“特殊”文件夹。
简而言之:
SpecialFolder.ApplicationData
。SpecialFolder.CommonApplicationData
。对于机器特定的数据,您可能还需要以管理员身份运行该程序,否则您将不具有对该位置的写入访问权限。
我想说这取决于你想要存储什么类型的日期。如果是用户特定的日期,那么如果它不是用户特定的数据,我建议由
Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData);
使用返回的路径,也就是说,它的数据通过你的程序的所有用户,然后将其存储在一个文件夹中共享您的安装路径可能更合适。
我恭敬地不同意你的结束语;建议不要将机器特定的数据存储在安装路径中。 Windows为这些数据提供“通用应用程序数据”位置。安装路径(即“Program Files”文件夹)仅用于存储*应用程序文件。 – BTownTKD
如果不同的用户存储不同的数据,那么将其存储在他们的用户帐户而不是程序文件中是有意义的。 –
取决于数据所代表的内容,它的使用环境是什么,它有多大,使用频率如何等等。提供关于你想要达到什么样的好答案的更多信息。 – Alex
我没有搜索应用程序设置,因为这是关于应用程序数据的更多信息,而不是设置。它有时可能是一个灰色地带。对不起,重复。 – MrGibbage