获取当前工作路径
> getwd()
[1] "/home/chen/projects/r"
列出当前工作区(local workspace)下的所有对象
> ls()
[1] "my_div" "my_sqrt" "old.dir" "x" "y" "z"
这个跟linux的ls
命令稍稍区别,列出的不是工作路径下的文件,而是workspace里的变量。像my_div
这些变量都是上一节使用的,如果没有清空workspace,这些都在。
列出当前工作路径下的所有文件
> list.files()
[1] "test.R"
> dir()
[1] "test.R"
list.files()
里不加参数的时候,功能与dir()
一致,可以通过?list.files
的更深层次用法,比如可以递归的列出文件夹中的文件。
了解未知函数的参数有哪些
> args(list.files)
function (path = ".", pattern = NULL, all.files = FALSE, full.names = FALSE,
recursive = FALSE, ignore.case = FALSE, include.dirs = FALSE,
no.. = FALSE)
NULL
将所需了解的函数放进args()
里即可。
创建文件夹
> dir.create("testdir")
在当前工作路径下创建了一个名为testdir
的文件夹。
修改工作路径
> setwd("testdir")
此时使用getwd()
查看当前工作路径时就变为"/home/chen/projects/r/testdir"
。setwd()
中的参数可以是绝对路径,这里写的是相对路径。
创建文件
> file.create("mytest.R")
[1] TRUE
判断一个文件是否存在
> file.exists("mytest.R")
[1] TRUE
获取文件的信息
> file.info("mytest.R")
size isdir mode mtime ctime atime uid gid uname grname
mytest.R 0 FALSE 664 2017-04-11 15:09:28 2017-04-11 15:09:28 2017-04-11 15:09:28 1000 1000 chen chen
也可以获取特定信息,通过file.info("mytest.R")$mode
,例如
> file.info("mytest.R")$isdir
[1] FALSE
查看是否是一个文件夹
重命名文件
> file.rename("mytest.R", "mytest2.R")
[1] TRUE
此时mytest.R
文件已经不存在
拷贝文件
> file.copy("mytest2.R", "mytest3.R")
[1] TRUE
此时"mytest2.R
和"mytest3.R
都存在。
创建相对路径
> file.path("folder1", "folder2", "folder3", "folder4")
[1] "folder1/folder2/folder3/folder4"
跟python的os.path.join
有点相似。
递归创建文件夹
> dir.create(file.path('testdir2', 'testdir3'), recursive = TRUE)
此时,在当前路径下创建了testdir2
文件夹,同时testdir2
文件夹里有创建了testdir3
。