gpt4 book ai didi

c - 用于删除子文件夹中某些文件类型的递归或迭代

转载 作者:行者123 更新时间:2023-11-30 17:49:21 27 4
gpt4 key购买 nike

递归或迭代地删除子文件夹中的某些文件类型会更好吗?

递归示例:

  • r =(如果子文件夹打开子文件夹,则删除超过 1 周的 .bak 文件,如果没有子文件夹并且没有超过 1 周的 .bak 文件,则打印未找到超过 1 周的 .bak 文件)
  • 文件夹 1 (run r) > 子文件夹 1 (run r) > 子文件夹 2 (run r) > 子文件夹 n (run r) > 程序在备份时会删除 1 周前的 .bak 文件每个文件夹中。

迭代示例:

  • del = 删除超过 1 周的 .bak 文件
  • search = 搜索子文件夹,如果找到子文件夹,则将它们放入数组中。
  • 打开=一次打开每个子文件夹,同时在每个子文件夹中运行del,然后再次搜索并重复,直到程序到达该分支内的最后一个子文件夹。
  • 从根目录移至下一个子文件夹分支。
  • 错误 = 如果没有子文件夹并且没有超过 1 周的 .bak 文件,则打印未找到超过 1 周的 .bak 文件
  • 文件夹 1 > 删除或错误 > 搜索 > 打开 > 移动 > 打印:# .bak 文件在 # 秒内删除...

最佳答案

在迭代的情况下,您需要手动维护堆栈或队列(在 DFS 或 BFS 的情况下)。如果您不仅想删除文件,还想删除目录,那么 DFS 将是最好的(因为您只能删除空目录)。我认为最好使用系统堆栈进行深度优先搜索,并在每个目录中执行您想要的操作。堆栈不应增长太多而导致堆栈溢出,除非您的目录条目和目录深度特别长,而这种情况发生的可能性较小。

您还可以使用ulimit设置堆栈大小。

关于c - 用于删除子文件夹中某些文件类型的递归或迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17916612/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com