我需要複製文件。強制關閉已打開的文件進行復制
說,我有這樣的代碼:
outputFile <- 'Path1/out.pdf'
originFile <- 'Path2/origin.pdf'
file.copy(from =originFile, to = outputFile,overwrite=TRUE)
但是,如果out.pdf(目標文件)已經打開我有一個權限被拒絕例外。
如何在新副本之前強制關閉/刪除目標文件?
我需要複製文件。強制關閉已打開的文件進行復制
說,我有這樣的代碼:
outputFile <- 'Path1/out.pdf'
originFile <- 'Path2/origin.pdf'
file.copy(from =originFile, to = outputFile,overwrite=TRUE)
但是,如果out.pdf(目標文件)已經打開我有一個權限被拒絕例外。
如何在新副本之前強制關閉/刪除目標文件?
使用相近或相似沒有幫助的東西這種情況下,因爲你沒有處理out.pdf
例如在Acrobat Reader中打開。
有兩種解決此問題的方法(假設Windows,我不知道如何在其他系統中處理此問題)。
a)使用Sumatra Viewer;它是唯一不會對PDF文件鎖定的合理可靠的查看器。這是RStudio使用的方法。
b)通過system()調用關閉文件使用pdfpos
。例如,請參閱here。在RStudio出現之前,我使用了這種方法,但它需要對每個新版本的Acrobat Reader /完整版以及正在運行的perl安裝進行調整。應該在其他操作系統上工作。
看看?close
- 這些是管理R內文件連接的命令。close(outputFile)
可能是您所需要的。 closeAllConnections()
如果您同時打開多個文件,則會批量許可。
(當然,如果該文件已被另一個程序的R外面被打開,例如PDF閱讀器,你將不得不關閉它R.以外)
謝謝!但是您有使用Sumatra Viewer的代碼示例嗎? – agstudy
無需代碼,安裝Sumatra Viewer並將其定義爲標準查看器。如果您不想這樣做,請使用方法2。 –