views:

41

answers:

1

Hey guys ;) I'm currently rewriting a file deletion tool with safe deleting algorithm and stuff. Wenn I'm trying to browse through a directory recursivly and to delete all files in there and all subdirs etc. the debugger will throw a stackoverflow exception.

Code :

   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); }
    }

Hope you can help me ;) cheers

+3  A: 

Change this:

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

to:

 foreach (string subdir in Directory.GetDirectories(directory))
 {
     deepWipe(subdir);
 }
Reed Copsey
+1 - you got me again!
womp
thanks, dude ;)
n0pt3x
@n0pt3x: You're welcome! Welcome to StackOverflow ;)
Reed Copsey