c - 如何使用通配符删除 C 中的多个文件?

标签 c file-io wildcard

在 C 中有什么方法可以使用 *(通配符)删除(使用 remove())多个文件? 我有一组全部以 Index 开头的文件。例如:Index1.txtIndex-39.txt等。 它们都以索引开头,但我不知道后面是什么文字。同一目录中还有其他文件,因此无法删除所有文件。

我知道您可以读取目录,遍历每个文件名,读取前 5 个字符,进行比较,如果适合则删除,但是,有没有更简单的方法(这就是我目前所做的)?

这是标准的 C,因为代码在 Linux 和 Windows 上运行。

最佳答案

正如您所指出的,您可以使用 diropen、dirread、dirclose 来访问目录内容,您自己的一个函数(或将通配符转换为正则表达式并使用正则表达式库)进行匹配,并取消链接以删除。

没有一种标准方法可以更轻松地完成这项工作。可能会有图书馆,但它们不会比你正在做的更有效率。通常,文件查找功能需要一个回调,您可以在回调中提供代码的匹配和操作部分。您将节省的只是循环。

关于c - 如何使用通配符删除 C 中的多个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2156211/

相关文章:

c++ - 使用 ifsream 和 stringstream 复制二进制文件时出错

c++ - 许多小文件还是一个大文件? (或者,打开和关闭文件句柄的开销)(C++)

python - wxPython FileDialog 通配符包含目录?

C 编译程序崩溃

c - 如何通过引用将 char * foo[SIZE][SIZE] 传递给函数并取消引用它?

c - 哪个头文件加载 Win32 api 中的 DLL?

c - -fomit-frame-pointer *总是*省略 fp 吗?

java - 在 Java 中读取制表符分隔的文件

用于检测来自特定域的任何通配符 url 的 Javascript(例如 : google)

filter - Laravel,路由通配符过滤然后 Controller