将文件写入Temp Path可创建随机命名文件夹

时间:2012-11-18 09:07:31

标签: c# io

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

如果您想再次访问该文件,请将设置文件放在别处或使用更多permanent solution(这允许您设置默认值并在运行时更改/保存/加载)。如果你想特别懒,请在键盘上创建一个guid或mash随机字母(sdhfuisdhfusdhc)并将其用作硬编码文件名。示例:Path.GetTempPath()+"sdhfuisdhfusdhc";