【发布时间】:2016-07-28 16:58:18
【问题描述】:
我有一个位于 here 的 rstudio 插件包。
其中一个插件允许用户定义一个目录,它会将位于包中的文件复制到该目录。
文件所在位置:
atProjectManageAddins/inst/Docs/RMarkdownSkeleton.Rmd
我正在尝试将其复制到用户定义的目录,如下所示:
file.copy("inst/Docs/RMarkdownSkeleton.Rmd",
paste0(Dir, FolderName, "/Reports/", FolderName, "_report.Rmd"))
我试图将它从包中的位置复制到用户定义的位置(基于两个单独的参数Dir 和FolderName)。
但这似乎不起作用。我的假设是我没有以正确的方式引用包目录。我试过./Inst/、~/Inst/,也许还有更多。我现在的假设是,我无法让file.copy() 工作有一个更系统的原因。
有什么建议吗?这甚至可能吗?
请注意,如果我通过source() 和runGadget() 在本地运行该函数,它就可以正常工作。只有当安装了包并且我使用了引用安装包的 RStudio 插件 GUI 时,它才会失败。因此,我很确定我没有正确定义已安装的 .Rmd 文件的文件路径。
编辑:根据 Carl 的建议(可以在 github 上看到),我已更改为以下内容,但文件仍未被复制。
file.copy(system.file("Docs","Rmarkdownskeleton.rmd",package="atProjectManageAddins"),
paste0(Dir, FolderName, "/Reports/", FolderName, "_report.Rmd"))
【问题讨论】:
-
你试过
file.path吗? -
我做到了。我发现了一些使用
file.path处理类似问题的问题/解决方案,但最终无法找到可行的解决方案。 -
有趣。我还没来得及克隆/测试你的包,但与
data.table相比,我的源代码有/inst/tests/tests.Rraw,但在编译时,包的安装版本不再有/inst文件夹,而是在主目录有/tests/tests.Rraw。您能否检查已安装包的目录结构以确保这是文件实际结束的位置? -
如果您还没有阅读,请务必阅读this
-
file.copy(system.file("Docs","Rmarkdownskeleton.rmd",package="atProjectManageAddins",paste0(Dir, FolderName, "/Reports/", FolderName, "_report.Rmd"))怎么样
标签: r r-package file-copying