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循環來檢查文件是否存在,如果它確實是安全的,請重新生成一個新名稱。 –