У меня возникли проблемы с вложением файла уценки, который находится на сетевом диске. Я использую rmarkdown :: render() для вложения файла. Я отследил проблему до функции file_path_as_absolute().Поиск абсолютного пути для файла на сетевом диске
У меня есть файл уценки, 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
Спасибо!
С уважением, Andrew.
Вы в окнах? Если это возможно, сопоставьте сетевой путь с виртуальным диском. 'system (« net use s: \\\\ mynetwork \\ path »)' для установки виртуального диска. 'system (" net use s:/Delete ")', чтобы удалить его. – jdharrison
Спасибо! Это похоже на хорошее предложение. Я обновил свой запрос с результатами. – DataWookie