Рассмотрите возможность блокировки папок сервера для доступа только для чтения, в отличие от директивы уровня скрипта. И в Windows, это может быть сделано под безопасность вкладки под Свойства папки (меню правой кнопки мыши), где вы можете даже обозначают права доступа (разрешить/запретить) различных группы пользователей:
только с Написать отказывался пользователь, любой file manipulation method поднимет Предупреждения или FALSE значения, но не в ошибку:
file.create("C:\\Path\\To\\Read-Only\\Folder\\NewFile.txt")
# [1] FALSE
# Warning message:
# In file.create("C:\\Path\\To\\Read-Only\\Folder\\NewFile.txt") :
# cannot create file 'C:\\Path\\To\\Read-Only\\Folder\\NewFile.txt', reason 'Permission denied'
file.rename("C:\\Path\\To\\Read-Only\\Folder\\CurrentFile.txt",
"C:\\Path\\To\\Read-Only\\Folder\\CurrentFile.txt")
# [1] FALSE
file.copy("C:\\Path\\To\\Read-Only\\Folder\\CurrentFile.txt",
"C:\\Path\\To\\Read-Only\\Folder\\NewFile.txt")
# [1] FALSE
# Warning message:
# In file.create("C:\\Path\\To\\Read-Only\\Folder\\NewFile.txt") :
# cannot create file 'C:\\Path\\To\\Read-Only\\Folder\\NewFile.txt', reason 'Permission denied'
И пользователь все еще может читать файлы без каких-либо ошибок:
con <- file(description="C:\\Path\\To\\Read-Only\\Folder\\CurrentFile.txt", open="r")
close(con)
df <- read.table("C:\\Path\\To\\Read-Only\\Folder\\CurrentFile.txt")
Обычно вы бы справиться с этим с разрешениями на стороне ОС. Я не думаю, что существует способ реализации таких ограничений в R. – Roland