我应该在哪里保存与我的申请相关的数据?我应该在哪里保存配置文件?我应该在哪里保存临时文件?我应该在“文件”中这样做吗? “应用程序数据”?等...
将数据保存到磁盘的最佳做法是什么(我想,特殊文件夹的最佳做法是什么?!)?
答案 0 :(得分:28)
ApplicationData :您的应用所需的所有内容都是“每用户”数据,不属于其他类别。标准配置文件将在此处。
CommonApplicationData :所有不是“每用户”数据的内容。
LocalApplicationData :每个用户和非漫游的数据。例如,您希望确保它只存储在此计算机上的所有内容(如计算机激活码,通常还包括缓存/临时数据)。标准临时文件将在这里。
MyDocuments :用户实际将其识别为“可识别的单个文档”的用户数据。
如果您不关心文件名,还可以使用tempfile API在temp
目录中生成临时文件。你不应该手动执行此操作。例如,在.NET中,您可以将Path.GetTempFileName()
用于此目的。
答案 1 :(得分:10)
来自Windows 7 Client Software Logo Program:
答案 2 :(得分:1)
AppData应该是自动配置和配置文件,文件应该只是用户保存的文件。我会把任何在AppData / Roaming中的多个系统中有用的东西,以及AppData / Local或LocalLow中的任何其他东西(特定于机器)。对于临时文件,请使用Temp目录。
答案 3 :(得分:1)
通常,Windows最佳做法是遵循适当的环境变量。您想要留下的配置数据应该是%APPDATA%,临时文件应该是%TEMP%。
这样做的好处是,如果Windows改变了事情并且尊重人们可能拥有的奇怪配置,那么不会破坏可怕的。
此外,我同意其他答案,即“文档”仅应用于用户创建的数据,并且仅在提示之后。
答案 4 :(得分:0)
此外,您应该使用SHGetFolderPath或SHGetKnownFolderPath(在Vista +中)来获取路径。无论当前安装的版本或语言如何,这都将为您提供当前系统的正确位置。永远不要硬编码你正在使用的任何路径。