【发布时间】:2012-11-18 09:07:31
【问题描述】:
我在将数据库连接设置写入位于用户临时目录的文件中的应用程序中遇到了一个稍微奇怪的问题。
我使用标准调用 - GetTempPath,然后使用此路径保存文件。我构建我的应用程序并进行部署。 99/100 机器工作 - 并将他们的文件保存在用户临时目录中,包括 XP 和 Win7 用户。
但是,我注意到一个用户(Win 7 Pro 64bit),每次程序在用户临时路径中创建连接文件时,它都会在临时路径中创建一个新文件夹(大约 5/6 个随机字符)目录并将文件保存在那里!这意味着每次用户重新启动应用程序时,都无法检索设置(因为无法保存上次使用的随机文件夹!),用户实际上丢失了他们的设置。所以程序只是一次又一次地在临时路径中创建新的随机文件夹。奇怪!
有没有其他人遇到过这个问题,或者有人知道这里可能发生了什么吗?我怀疑它与操作系统有关,而不是我的代码。
【问题讨论】:
-
为什么要使用临时目录进行设置,而不是使用 .NET 中处理设置的常规方法之一?
-
用户的设置是如何临时的?
-
为什么不将它们存储在用户的应用数据文件夹中?或者某些可能位于用户个人资料下的位置?请在 API 调用中添加您的代码,以便有人可以提供更好的帮助
-
粗略猜测:可能与文件/目录权限有关。但是,将设置存储在临时文件夹中可能不是一个好主意。为什么不使用
Properties.Settings和 Visual Studio 中的设置编辑器? -
公平的,现在不确定我为什么选择临时目录,当时一定是有原因的,嗯。好吧,我没有使用设置文件,因为我想以嵌套方式存储设置,而 Properties.Settings 似乎只以键值对的方式存储东西。