System.IO.File.Delete抛出算术运算导致溢出

时间:2014-11-17 00:45:37

标签: c# .net c#-4.0 delete-file

我有这个奇怪的错误。当我拨打System.IO.File.Delete()时,它会抛出

  

JobCleaner.CleanFiles():无法删除文件:D:\ WorkerData \ 4 \ Run128 \ Run_TEMPLATE_Rail_Scenario_Type35_INFHD2_NO_TAX_NOMEP \ out put_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;
    }
}

有什么想法吗?我尝试了一切,我检查了文件夹的安全性。我启用了#34;每个人"完全控制,但仍然遇到这个"算术运算导致溢出"异常。

有人可以帮忙吗?我正在使用Windows 2012 R2 Datacenter来运行我的应用程序。

1 个答案:

答案 0 :(得分:0)

我不希望它抛出算术异常,但是当你在foreach中修改IEnumerable时,我发现了一些奇怪的行为。尝试将文件列表移出循环,如下所示:

string[] files = System.IO.Directory.GetFiles(strFolder);
foreach (string strFile in files)
{
  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;
  }
}