我有一个奇怪的问题......我想我已经将它缩小到我们使用Page.GetTempFileName()
创建临时文件的程度。
我有时会收到一条错误消息,指出Cannot create a file when that file already exists.
是否有可能使用Path.GetTempFilename()
生成相同的文件名并变为缓存?
我正在更改我的代码:
Path.Combine(System.IO.Path.GetTempPath(), string.Concat(Guid.NewGuid().ToString(), ".xls"));
希望这会生成一个唯一的文件名,但我担心可能会出现同样的问题。
答案 0 :(得分:2)
Path.GetTempFilename()在磁盘上创建一个实际文件;根据您拥有该文件名时所做的事情,您可能会触发某些内容。它被编写为返回一个实际文件,以避免与过去的旧临时文件名方法相关的竞争条件(例如,在C标准库中特别是tmpnam)。
请注意,如果使用此方法创建的文件超过65,535而不删除它们,或者无法生成唯一文件名,则会抛出异常。
那么,从Path.GetTempFilename()获取后,你用这个文件名做什么?