2011-03-24 48 views
3

我有一堆機器上運行大型應用程序。每5分鐘複製一個文件對其進行一些操作。C#File.Copy沒有足夠的配額

代碼工作順利的時候,幾乎99.9%,但每隔幾個小時一次我可能會錯誤在這裏討論。

下面的代碼:

try 
{ 
    File.Copy(fullPathName, readPathName, true); 
} 
catch (Exception exception) 
{ 
.... 
} 

此代碼在自己的線程運行,但只應在運行這些線程之一。這是我得到的錯誤:

嘗試創建.tmp文件時遇到意外的異常。沒有足夠的配額可用於處理此命令。

在System.IO .__ Error.WinIOError(的Int32的errorCode,字符串maybeFullPath) 在System.IO.File.InternalCopy(字符串sourceFileName,字符串destFileName,布爾改寫) 在System.IO.File.Copy(字符串sourceFileName ,字符串destFileName,布爾覆蓋) 在....

+0

我們得到了您的堆棧跟蹤的一部分,但實際的錯誤似乎缺少。 – 2011-03-24 06:34:03

+0

哎呀,對不起。固定 – 2011-03-24 06:38:22

+0

配額可以是用戶空間或用戶內存。檢查用戶和正在使用的驅動器上是否有任何限制設置。 – CodingBarfield 2011-03-24 11:08:45

回答

2

Not enough quota is available to process this command意味着你的系統資源低的運行做到這一點。很難說出問題究竟是什麼,但幾乎可以確定你的代碼沒有什麼可以做,但重試該操作。

+0

出的所有迄今爲止的答案,這對我來說似乎最合乎邏輯。配額(在文件I/O的情況下)可能指的是用戶可用的磁盤空間。儘管沒有更多細節很難說出問題所在。 – 2011-03-24 06:51:15

+0

@Jeff:實際上,如果低配額指的是磁盤空間,我敢肯定它會顯示爲「完整磁盤」類型的錯誤。在這種情況下,我認爲這可能是指某種頁面/非頁面池短缺或類似的東西。 – Gabe 2011-03-24 06:53:16

+0

我不確定。我認爲「全盤」空間錯誤會導致誤導。由於磁盤實際上並不是完整的,因此您(用戶)不允許再寫入它,因爲您超出了配額。這似乎比其他任何人都更可能。但這一切都是我的猜測,希望新會給我們提供更多關於這個問題的細節。 – 2011-03-24 07:02:06

0

請檢查寫入文件的權限。這可能是由於創建或覆蓋文件的用戶權限不足造成的。

0

檢查,如果你的文件不被其他進程鎖定。您可以輕鬆地Process Explorer