2011-09-27 109 views
1

我在Windows Azure中遇到問題。我將臨時文件存儲在本地存儲中。經過一段時間後,我得到一個System.IO.IOException:磁盤上沒有足夠的空間。如何處理「System.IO.IOException:磁盤空間不足」。在Windows Azure中

所以我已經閱讀了一些關於它的文章和微軟自己建議趕上錯誤並嘗試清除文件。所以我現在的問題是如何完成這個最好的方法?

此刻,我會嘗試,但我不知道這是不是最好的辦法:

public static void ClearTempFolder(string localStorageName) 
    { 
     System.IO.DirectoryInfo downloadedMessageInfo = new DirectoryInfo(RoleEnvironment.GetLocalResource(localStorageName).RootPath); 
     foreach (FileInfo file in downloadedMessageInfo.GetFiles()) 
      file.Delete(); 
     foreach (DirectoryInfo dir in downloadedMessageInfo.GetDirectories()) 
      dir.Delete(true); 
    } 

感謝您的幫助。

回答

2

如果你對所有文件都很滿意 - 那麼,是的,這應該可以正常工作。您可能想要捕獲文件仍處於打開狀態時將拋出的異常。

但是,檢查代碼以查看是否可以在完成後立即刪除臨時文件會更好。

+0

thx爲您提供幫助! – MUG4N

0

退房http://msdn.microsoft.com/en-us/library/windowsazure/hh134851.aspx

默認TEMP/TMP目錄限制爲100MB ...!即使你有200GB +本地存儲。

您的解決方案應該是雙重的: 1)清理臨時文件,當你與他們進行(如果你寫一個文件到臨時文件夾,刪除它,當你完成它) 2)增加本地存儲大小(如上所述),因此您可以在臨時磁盤存儲上存儲大於100MB的文件

相關問題