C#文件复制:配额不足。

3

我有一个在多台机器上运行的大型应用程序。每5分钟,它会复制一个文件并对其进行一些操作。

这段代码几乎99.9%的时间都可以正常工作,但是每隔几个小时就可能出现这里讨论的错误。

以下是代码:

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

这段代码在自己的线程中运行,但应该只有一个这样的线程在运行。以下是我收到的错误信息:

尝试创建.tmp文件时遇到意外异常。没有足够的配额来处理此命令。

at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite) at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite) at ....


我们已经获取到了您的堆栈跟踪的一部分,但实际的错误似乎丢失了。 - Merlyn Morgan-Graham
配额可以是用户空间或用户内存。检查用户和你正在使用的驱动器上是否存在任何限制设置。 - CodingBarfield
这个问题可能会很有用/有趣 https://dev59.com/0Oo6XIcBkEYKwwoYPR_f - Dave
4个回答

2

Not enough quota is available to process this command 的意思是系统资源不足。具体的问题很难确定,但你的代码只能尝试重新执行操作。


到目前为止,这个答案对我来说似乎最合理。配额(在文件I/O的上下文中)可能是指用户可用的磁盘空间。虽然没有更多细节很难确定问题所在。 - Jeff Mercado
@Jeff:实际上,如果低配额是指磁盘空间,我相信它会显示为“磁盘已满”类型的错误。在这种情况下,我认为它可能是指某种页面/非页面池短缺或类似的问题。 - Gabe
我不确定。我认为,“磁盘已满”的空间错误可能会误导人。因为实际上磁盘并没有真正满,只是你(用户)已超过配额而无法继续写入。这似乎比其他任何情况更有可能发生。但这只是我的猜测,希望Neo能给我们更多关于问题的详细信息。 - Jeff Mercado

0
请检查用户权限以写入文件。这可能是由于用户权限不足而导致无法创建或覆盖文件。

0

检查您的文件是否被其他进程锁定。您可以使用Process Explorer轻松完成此操作。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接