0

对于将数据库连接设置写入位于用户临时目录中的文件的应用程序,我有一个稍微奇怪的问题。

我使用标准调用 - GetTempPath,然后使用此路径保存文件。我构建我的应用程序并进行部署。99/100 机器工作——并将他们的文件保存在用户临时目录中,包括 XP 和 Win7 用户。

但是,我注意到一个用户(Win 7 Pro 64bit),每次程序在用户临时路径中创建连接文件时,它都会在临时目录中创建一个新文件夹(大约 5/6 个随机字符)并保存里面的文件!。这意味着每次用户重新启动应用程序时,都无法检索设置(因为无法保存上次使用的随机文件夹!),用户实际上丢失了他们的设置。所以程序只是一次又一次地在临时路径中创建新的随机文件夹。奇怪!

有没有其他人遇到过这个问题,或者有人知道这里可能发生了什么吗?我怀疑它与操作系统有关,而不是我的代码。

4

1 回答 1

0

Path.GetTempPath仅获取临时文件的文件夹。听起来您正在使用Path.GetTempFileName

根据设计,第一句话说“在磁盘上创建一个唯一命名的零字节临时文件并返回该文件的完整路径。”。它不会返回已经存在的临时文件。如果您想临时设置其调用的精细函数,但请记住该函数不会返回相同的位置,除非它可以使文件零字节长。

如果您想再次访问该文件,请将设置文件放在其他地方或使用更永久的解决方案(这允许您设置默认值并在运行时更改/保存/加载)。如果您想特别懒惰,请在键盘上创建一个 guid 或混合随机字母 (sdhfuisdhfusdhc) 并将其用作硬编码文件名。例子:Path.GetTempPath()+"sdhfuisdhfusdhc";

于 2012-11-18T10:05:28.197 回答