我必须删除C代码中的数百个文件。我在循环中使用“删除”。有没有比使用“删除”更快的方式来做到这一点?我问这个,因为我不能用“删除”来给wildchars。从C代码中删除文件
回答
不,没有比在POSIX系统上使用remove()
或unlink()
更快的方式 - 循环。
系统rm
命令也这样做 - 至少在命令行中给出名称的简单非递归情况下。 shell扩展了元字符,并且rm
(in)着名地删除了它被告知要删除的内容,而不知道在命令行中使用的灾难性的*.*
表示法。 (在递归情况下,它使用这样的功能如nftw()
在深度优先的顺序和重复的调用目录结构遍历unlink()
删除文件和rmdir()
以除去(现在为空的)目录。)
POSIX提供函数(glob()
和wordexp()
)以生成(POSIX)shell中使用的元字符的文件名列表,并加上fnmatch()
以查看名称是否与模式匹配。
是不是'*'与'*。*'相同,还是有一些细微差别?当人们提到'rm'启示时,他们似乎总是使用'*。*' –
在Windows下*需要*。*';在Unix上,'*'就足够了(实际上,比'*。*'更具破坏性,因为简单的'*'匹配更多的名字)。我稍微辩论使用哪一个,并且(好或坏)选择'*。*'。这两个都是坏消息。 (而且我见过的最糟糕的'rm'大灾变是删除了以root用户/ /作为主目录创建的临时用户帐户;'remove user'命令删除了其主目录下的所有内容。系统可以在丢失关键文件后运行,幸运的是,它是一个全新的系统,并且从前一天开始有备份。) –
感谢您的输入。我可以生成没有任何问题的文件名。我唯一担心的是更快地发出“删除”命令。 – Kitcha
你可以使用system
来产生一个可以为你做扩展的shell。这可能不会比在循环中调用unlink()更快,因为它必须产生一个shell(启动一个新进程)。但编码会更容易。
- 1. 使用QFile :: remove()从C++代码中删除文件正在离开.nfsxxxxx文件?
- 2. 从GitHub中删除代码
- 3. 错误代码:3604从SharePoint文档库中删除文件时
- 4. 从文本文件中删除空格的Jython代码
- 5. 删除C#代码重复#
- 6. C#代码被删除
- 7. 键盘快捷键删除C#代码文件中的空行
- 8. 从文件中删除标签用C
- 9. 用C++从文件中删除图像
- 10. C++从.txt文件中删除行
- 11. 从WPF MVVM项目中删除代码隐藏文件
- 12. 从代码库中删除无用的文件
- 13. sed帮助从多个文件中删除malwarm代码
- 14. Git:从源代码控制文件中删除回车
- 15. 从vrml(wrl)文件中删除代码,选择性
- 16. 实体框架从源代码管理中删除文件
- 17. Python从文件中删除一行代码
- 18. 从Rails模式文件中删除SQL代码
- 19. 从.js文件中删除恶意代码
- 20. 删除C/C++,从该文件被读
- 21. 删除* .cs,* .Designer.cs代码隐藏文件?
- 22. Java代码无法删除文件
- 23. 删除“”从不同的编码文件中读取在C#
- 24. 删除C中的文件
- 25. 删除c中的文件
- 26. C#删除文件
- 27. 如何从C#中的URL中删除Cookie代码?
- 28. 如何从目标中的代码中删除图像c
- 29. 通过C#代码删除文件时出错
- 30. C++从文件中运行代码
为什么你不在管道中输入ls的结果,这样就不必输入所有名称 – lc2817
问题是,该目录中有50000个文件。我必须在必要时删除其中的一小部分。 “删除”对我来说工作正常,但需要一段时间才能完成。我正在寻找更快的东西。如果我可以在“C”中执行相同的操作,我不想从“C”调用shell命令。 – Kitcha
你可以使用python吗? :) – lc2817