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

本文关键字:算术运算 溢出 IO File Delete System | 更新日期: 2023-09-27 18:30:38

我有这个奇怪的错误。当我打电话给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;
    }
}

知道吗?我尝试了所有方法,检查了文件夹的安全性。我启用了具有完全控件的"所有人",但仍然遇到此"算术运算导致溢出"异常。

请问谁能帮忙?我正在使用 Windows 2012 R2 数据中心来运行我的应用程序。

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

我不希望它抛出算术异常,但是当您在正在行走的 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;
  }
}