Uri*_*Uri 10 c file-io wildcard
在C中有没有办法remove()
使用*
(通配符)删除(使用)多个文件?我有一组文件都以Index开头.例如:Index1.txt
,Index-39.txt
等他们一开始都是以指数,但我不知道什么如下文字.同一目录中还有其他文件,因此删除所有文件将不起作用.
我知道你可以读取目录,迭代每个文件名,读取前5个字符,比较,如果它适合然后删除,但是,有一个更简单的方法(这是我目前做的方式)?
这是标准的C,因为代码在Linux和Windows上运行.
Eps*_*ime 10
正如您所指出的,您可以使用diropen,dirread,dirclose来访问目录内容,您自己的函数(或将通配符转换为正则表达式并使用正则表达式库)来匹配,并取消链接到删除.
没有一种标准的方法可以更轻松地完成这项工作.可能有图书馆,但它们不会比你正在做的更有效率.通常,文件查找功能会进行回调,您可以在其中提供代码的匹配和操作部分.所有你要保存的就是循环.
如果您不介意特定于平台,可以使用以下system()
呼叫:
system("del index*.txt"); // DOS
system("rm index*.txt"); // unix
Run Code Online (Sandbox Code Playgroud)
以下是system()
调用的一些文档,它是标准C库(cstdlib)的一部分.