【问题标题】:C# Stackoverflow in recursive deleting directory operationC# Stackoverflow 中递归删除目录操作
【发布时间】:2011-03-11 07:10:55
【问题描述】:

我目前正在用安全删除算法和东西重写一个文件删除工具。 Wenn 我正在尝试递归浏览目录并删除其中的所有文件和所有子目录等。调试器将引发 stackoverflow 异常。

   private void wipeFile(string file)
   {
        bool ret = false;
        switch (m_algo)
        {
            case Algorithms.fastAlgo:
                ret = FastWipe.WipeFile(file);
                break;
            case Algorithms.safeAlgo:
                ret = CleanWipe.WipeFile(file, m_timesToWrite);
                break;
        }
        handleFileWiped(file, DateTime.Now, ret);
    }

    /// <summary>
    /// Wipes a directory recursively
    /// </summary>
    /// <param name="directory">Given subdir</param>
    private void deepWipe(string directory)
    {
        foreach (string file in Directory.GetFiles(directory))
        {
            wipeFile(file);
        }
        foreach (string subdir in Directory.GetDirectories(directory))
        {
            deepWipe(directory);
        }
        try
        {
            Directory.Delete(directory);
            handleDirectoryWiped(directory, DateTime.Now, true);
        }
        catch { handleDirectoryWiped(directory, DateTime.Now, false); }
    }

【问题讨论】:

    标签: c# stack-overflow delete-file delete-directory


    【解决方案1】:

    改变这个:

     foreach (string subdir in Directory.GetDirectories(directory))
     {
         deepWipe(directory);
     }
    

    到:

     foreach (string subdir in Directory.GetDirectories(directory))
     {
         deepWipe(subdir);
     }
    

    【讨论】:

      猜你喜欢
      • 2016-04-18
      • 1970-01-01
      • 2014-05-12
      • 1970-01-01
      • 2021-03-30
      • 2018-10-15
      • 2010-10-21
      相关资源
      最近更新 更多