C# Stackoverflow中递归删除目录操作
我目前正在重写一个文件删除工具,其中包含安全删除算法和其他内容。 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); }
}
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.
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); }
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将此:更改
为:
Change this:
to: