gpt4 book ai didi

r - 在网络驱动器上查找文件的绝对路径

转载 作者:行者123 更新时间:2023-12-04 09:37:14 26 4
gpt4 key购买 nike

我在编织位于网络驱动器上的 Markdown 文件时遇到了一些麻烦。我正在使用 rmarkdown::render() 来编织文件。我已经将问题追溯到 file_path_as_absolute() 函数。

我的工作目录中有一个 Markdown 文件 foo.Rmd。

> list.files()
[1] "$RECYCLE.BIN" "2014-11-04-popular-wagers-distribution.pdf"
[3] "db-connection.R" "desktop.ini"
[5] "figure" "foo.md"
[7] "foo.Rmd" "game-popularity.R"
[9] "My Data Sources" "player-data-game-monitoring.tsv"
[11] "player-linking.R" "player-pca.R"
[13] "query-1.sql" "query-2.sql"
[15] "R" "report-test-2.Rmd"
[17] "report-test.md" "report-test.Rmd"
[19] "report-test.xxx" "SQL Server Management Studio"
[21] "test.md" "test.R"
[23] "test.Rmd" "Thumbs.db"

我可以找到绝对路径:
> normalizePath("foo.Rmd")
[1] "\\\\dernetapp02\\h$\\users\\AndrewCo\\myCitrixFiles\\Documents\\foo.Rmd"
Warning message:
In normalizePath(path.expand(path), winslash, mustWork) :
path[1]="foo.Rmd": Access is denied

尽管它会产生警告,但它仍然有效。我不确定为什么会收到此警告,因为我确实拥有对该文件的读写访问权限。

但是调用 file_path_as_absolute(),它只是 normalizePath() 的一个包装器,会将这个警告变成一个错误。
> tools::file_path_as_absolute(input)
Error in normalizePath(path.expand(path), winslash, mustWork) :
path[1]="foo.Rmd": Access is denied

我很确定问题与文件位于网络驱动器上的事实有关,因为当我对本地驱动器上的文件执行相同操作时,我不会遇到此问题。但是,如上所述,我确实对该文件具有读/写访问权限。

有没有人对这个问题的根源有任何想法?而且,更重要的是,一个可能的解决方案?

根据建议(如下),我尝试映射到网络驱动器:
> system("net use s: \\\\dernetapp02\\h$")

这看起来很有希望,但最终得到了相同的结果:
> normalizePath("s:\\users\\AndrewCo\\myCitrixFiles\\Documents\\foo.Rmd")
[1] "s:\\users\\AndrewCo\\myCitrixFiles\\Documents\\foo.Rmd"
Warning message:
In normalizePath(path.expand(path), winslash, mustWork) :
path[1]="s:\users\AndrewCo\myCitrixFiles\Documents\foo.Rmd": Access is denied

谢谢!

此致,
安德鲁。

最佳答案

同样的问题在这里。
我结束了在本地文件夹中移动项目并使用命令 file.copy 复制生成的文件。

这是一个通用的解决方案,如果有人找到更好的解决方案,我会感兴趣。

关于r - 在网络驱动器上查找文件的绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27317692/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com