在R中,unlink和file.remove有什么区别?

And*_*rie 29 r

R提供了两个从文件系统中删除文件(和文件夹)的功能:

  • unlink
  • file.remove

不完全明显的是差异是什么,或者确实在什么时候使用哪个,除了这unlink需要一些额外的论点.

读取这些函数的源代码并没有多大帮助,因为它们都只是调用编译的C函数.

有什么区别?你什么时候应该unlink优先使用,file.remove反之亦然?

mds*_*ner 21

我的猜测只是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的长现有代码.除此之外,只需选择最适合您需要(或习惯)的代码.


ms6*_*609 8

这些函数行为的主要实际差异在于它们如何处理当前打开的文件,因此无法立即删除该文件:

  • unlink()一旦文件未在任何其他上下文中打开,就将其标记为删除;
  • file.remove()保持文件完整,返回FALSE,但抛出警告。

相关:R中“权限被拒绝”时如何删除文件?

  • `unlink` 允许“通配”文件名,而 `file.remove()` 似乎不允许。 (2认同)