2

ファイルをコピーする必要があります。

と言って、私はこのコードを持っています:

outputFile <- 'Path1/out.pdf'
originFile <- 'Path2/origin.pdf'

file.copy(from =originFile, to = outputFile,overwrite=TRUE)

ただし、out.pdf (宛先ファイル) が既に開いている場合、許可拒否の例外が発生します。

新しいコピーの前に宛先ファイルを強制的に閉じる/削除するにはどうすればよいですか?

4

2 に答える 2

1

この場合、close などを使用しても役に立ちませんout.pdf。たとえば、Acrobat Reader で開くためのハンドルがないためです。

この問題を回避するには 2 つの方法があります (Windows と仮定すると、他のシステムでこれを処理する方法がわかりません)。

a) スマトラ ビューアーを使用します。これは、pdf ファイルにロックをかけない、合理的に信頼できる唯一のビューアーです。これは RStudio で使用される方法です。

b) pdfpossystem() 呼び出しを介して使用して、ファイルを閉じます。例については、こちらを参照してください。RStudio が登場する前はこの方法を使用していましたが、Acrobat Reader/Full Version の新しいリリースごとに微調整が必​​要で、perl インストールを実行する必要があります。他のオペレーティング システムで動作するはずです。

于 2012-11-25T09:24:09.553 に答える
0

ご覧ください?close-これらはR内のファイル接続を管理するためのコマンドclose(outputFile)です。必要なのはこれだけかもしれません。closeAllConnections()同時に複数のファイルを開いている場合は、多くの問題が発生します。

(もちろん、ファイルがRの外部の別のプログラム(PDFリーダーなど)によって開かれている場合は、Rの外部でファイルを閉じる必要があります。)

于 2012-11-25T08:44:47.770 に答える