Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将文件写入临时路径会创建随机命名的文件夹_C#_Io - Fatal编程技术网

C# 将文件写入临时路径会创建随机命名的文件夹

C# 将文件写入临时路径会创建随机命名的文件夹,c#,io,C#,Io,对于一个将数据库连接设置写入位于users temp目录中的文件的应用程序,我有一个稍微奇怪的问题 我使用标准的call-GetTempPath,然后使用此路径保存文件。我构建并部署我的应用程序。99/100机器工作-并将其文件保存在用户临时目录中,包括XP和Win7用户 但是,我注意到有一个用户(Win 7 Pro 64位),每次程序在用户临时路径中创建连接文件时,它都会在临时目录中创建一个新文件夹(大约5/6个随机字符),并将文件保存在那里!。这意味着每次用户重新启动应用程序时,都无法检索设

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

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

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

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

只获取临时文件的文件夹。听起来你在用

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


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

为什么要使用临时目录进行设置,而不是使用.NET中处理设置的常规方法?用户的设置如何是临时的?为什么不将它们存储在用户的应用程序数据文件夹中?或者用户个人资料下的某个位置?请将您的代码与API调用一起添加,以便有人可以帮助您更好地猜测:可能与文件/目录权限有关。但是,将设置存储在临时文件夹中可能不是一个好主意。为什么不在Visual Studio中使用属性、设置和设置编辑器呢?首先,我现在不确定我为什么选择临时目录,这一定是当时的原因,嗯。我没有使用设置文件,因为我想以嵌套方式存储设置,似乎属性。设置只以键值对的方式存储东西。不-我正在使用Path.GetTempPath,它还在临时目录中创建随机子文件夹。@Vidar噢!我确信它遵循与GetTempFileName相同的规则。它可能只是创建了一个文件夹而不是一个文件。实际上,我会很懒,选择硬编码的随机字母mashing filename/foldername。但我想这个答案已经包含了你需要知道的一切了?