The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何讓使用者下載完檔案後自動刪除暫存的檔案

我們有時後會在 Server ���動態的產生一個檔案,然後讓使用者下載,你也有可能希望使用者下載完該檔的時候可以直接從 Server 端直接刪除,不過這個動作無法在一個 HTTP Request/Response 循環中完成,因為檔案正在傳送回用戶端時並無法刪除該檔!

另一種可能會出現的需求是,使用者上傳檔案(例如說要匯入資料庫的檔案),上傳完之後的下一頁需要處理一些資料的驗證等工作,最後將資料寫入資料庫後將該暫存檔刪除。 

諸如此類的需求可以使用 Path 類別的一個靜態方法 Path.GetTempFileName() 來達成,該方法會再你系統的暫存目錄中建立一個長度為 0 的暫存檔案,然後回傳該檔案的完整路徑,你就可以用這個檔案路徑寫入你要寫入的資料,至於何時要刪除掉這個檔案就不重要了,因為刪除暫存檔的動作可以留給作業系統來處理!

[code:c#]

    string tmpFilePName = Path.GetTempFileName();

    File.WriteAllText(tmpFilePName, "TEST 123");

[/code]