R提供了两个从文件系统中删除文件(和文件夹)的功能:
unlink
file.remove
差异是什么,或者确实何时使用除了unlink
除了unlink
以外的其他参数之外,并不完全明显。
阅读这些函数的源代码并没有多大帮助,因为它们都只是调用编译的C函数。
有什么区别?您应该何时使用file.remove
优先于{{1}},反之亦然?
答案 0 :(得分:20)
我的猜测很简单就是unlink
出现在S中,因为它引用了Becker,Chambers和Wilks(1988),而file.remove
(和file.copy,file.create等)有从一开始就是R的一部分,以便为一般文件操作提供一系列功能。
unlink
对应一个非常古老的Unix函数(当1988版S出现时肯定存在):http://en.wikipedia.org/wiki/Unlink_(Unix)
因此,unlink
与S兼容,file.remove
是R的一部分,并且两者都是为了支持来自S和R的长现有代码而维护。除此之外,只需选择最适合您的需求(或习惯)的那个。
答案 1 :(得分:0)
我认为函数行为的主要区别在于它们如何处理当前打开的文件,因此不能立即删除:
unlink()
在文件未在任何其他上下文中打开时立即将其标记为删除;file.remove()
保持文件完好无损,返回 FALSE
,但抛出警告。