0
我有一个奇怪的问题......我想我已经缩小到了使用Page.GetTempFileName()
创建临时文件的程度。可以Path.GetTempFileName()永远缓存吗?
我有时会得到一个错误信息,说明Cannot create a file when that file already exists.
是否有机会使用Path.GetTempFilename()
可以产生相同的文件名,并成为高速缓存?
我改变我的代码使用方法:
Path.Combine(System.IO.Path.GetTempPath(), string.Concat(Guid.NewGuid().ToString(), ".xls"));
在希望,这将产生一个唯一的文件名,但我担心的是,同样的问题可能出现。
我们使用SyncFusion库从返回的一些数据生成Excel(xls)文件。所以我们将文件从'.tmp'移动到'.xls',然后使用'SaveAs'写入文件。一旦我们完成,我们通常会删除文件。有时候,这种情况不会发生...... –
那么这个调用只会验证这个名字没有与.tmp扩展名一起使用。当你重命名它时,你是否首先检查你是否已经有一个带有.xls这个名字的文件?当这种情况失败时,临时目录中有多少个文件(并且在此之后会一直失败,或者只是偶尔?) – Joe
它只是偶尔。所以它可能会重用现有的文件名,因为它不存在作为一个tmp ...有趣的。我希望上面提到的有关使用GUID创建文件的更改。我甚至添加了一个while循环来检查文件是否存在,如果它确实是安全的,请重新生成一个新名称。 –