【发布时间】:2014-11-17 00:45:36
【问题描述】:
我有这个奇怪的错误。当我调用System.IO.File.Delete() 时,它会抛出
JobCleaner.CleanFiles():无法删除文件:D:\WorkerData\4\Run128\Run_TEMPLATE_Rail_Scenario_Type35_INFHD2_NO_TAX_NOMEP\output_panels\FileIndex55.bin
错误:算术运算导致溢出。
没有堆栈跟踪。
这是我的代码:
foreach (string strFile in System.IO.Directory.GetFiles(strFolder))
{
try { System.IO.File.Delete(strFile); }
catch (Exception ex)
{
//Exception here
AddToLog("JobCleaner.CleanFiles(): Error occurred when trying to delete file \"" + strFile + "\".\nError:\n" + ex.Message);
return false;
}
}
有什么想法吗?我尝试了一切,我检查了文件夹的安全性。我用完全控制启用了“所有人”,但仍然遇到这个“算术运算导致溢出”异常。
有人可以帮忙吗?我正在使用 Windows 2012 R2 Datacenter 来运行我的应用程序。
【问题讨论】:
-
File.Delete() 不能直接抛出这个异常,所以是其他原因造成的,我认为删除实际上不起作用?
-
是的,这很奇怪。
File.Delete()没有理由做任何算术运算,更别提抛出与一个相关的异常了。奇怪的是,您没有发布一个好的问题这一事实特别令人烦恼。您至少应该发布完整的错误信息,包括堆栈跟踪。实际上,您应该创建一个更好、完整、简洁的代码示例。见stackoverflow.com/help/mcve -
是的,这很奇怪。这是唯一引发异常的代码行。除了 System.IO.File.Delete() 之外没有其他代码......我正在撕扯我的头发:(
-
彼得,那是我从日志文件中得到的。这是完整的错误(没有堆栈错误): JobCleaner.CleanFiles(): Unable to delete file: D:\WorkerData\4\Run128\Run_TEMPLATE_Rail_Scenario_Type35_INFHD2_NO_TAX_NOMEP\output_panels\FileIndex55.bin 错误:算术运算导致溢出。好的,我将尝试修改我的代码以输出堆栈跟踪。对此感到抱歉... PS。它适用于 Windows 7 和 Windows 2008。它只是不适用于 Windows 2012 R2 Datacenter
-
记录整个异常,包括堆栈跟踪。所以不要使用
ex.Message,而是使用ex.ToString()。堆栈跟踪应该准确地告诉您错误发生在哪一行。
标签: c# .net c#-4.0 delete-file