如何检查参数是R中的文件还是目录?

时间:2015-08-06 17:12:51

标签: python r if-statement

我非常熟悉python等价物&#os; os.path.isfile( path )'和' os.path.isdir(路径)'如果 path 是文件或目录,则说明。

到目前为止,我没有在R中找到一种简单直接的方法来实现这一点,看起来即使谷歌也从来没有听说过这个!

是否有人可以击败Google并告诉我R中最简单的方法是检查给定的参数是文件,目录还是其中没有?

1 个答案:

答案 0 :(得分:2)

扩展评论:

file.info("/etc")
##      size isdir mode               mtime               ctime
## /etc 3638  TRUE  755 2015-07-22 10:51:58 2015-07-22 10:51:58
##                    atime uid gid uname grname
## /etc 2015-08-01 08:11:43   0   0  root  wheel

file.info("/etc/hosts")
##              size isdir mode               mtime               ctime
## /etc/hosts 787448 FALSE  644 2015-07-19 17:34:59 2015-07-19 17:34:59
##                          atime uid gid uname grname
## /etc/hosts 2015-08-06 12:30:26   0   0  root  wheel

file_test("-f", "/etc/hosts") # is a file and not a dir
## [1] TRUE

file_test("-d", "/etc") # is a dir
## [1] TRUE

dir.exists("/etc") # R 3.2.0+
## [1] TRUE

file.exists("/etc/hosts")
## [1] TRUE

Sys.readlink("/etc") # will return something if it's a symbolic link
## [1] "private/etc"

Sys.readlink("/tmp")
## [1] "private/tmp"

Sys.readlink("/bin") # or "" if not
## [1] ""