提问者:小点点

在 R 闪亮应用程序中自动删除临时文件 - 文件中的错误:无法打开连接


我创建了一个R shiny应用程序,它使用一个批处理文件每天自动运行。启动应用程序时一切正常,但第二天它崩溃了,我收到以下消息:

Warning in file(open = "w+") :
  cannot open file
'C:\Users\bertin\AppData\Local\Temp\RtmpKiBPOU\Rf3f835d1a66' : No such file or directory
Warning: Error in file: cannot open the connection
  [No stack trace available]

实际上,这个问题与执行shiny应用程序的R会话创建的< code>tempdir()文件夹有关。该文件夹会在一定时间后自动删除。我必须在每次刷新时删除所有临时文件吗?或者相反,需要阻止R删除temp文件夹中所有闪亮的临时文件吗?谢谢!

编辑-以下是如何故意生成错误:

tempdir()
dir.exists(tempdir())

library(shiny)

# Windows shell required
shinyApp(
    ui = fluidPage("Please reload to see me fail."),
    server = function(input, output) {
        shell(paste("rmdir", dQuote(
            normalizePath(tempdir(), winslash = "/", mustWork = FALSE), q = FALSE
        ), "/s /q"))
    }
)


共2个答案

匿名用户

到目前为止,我已经在Windows 10(存储感知)中找到了一个关于删除临时文件的设置,默认情况下该设置似乎处于活动状态。

按如下方式导航并取消选中:

  1. 设置
  2. 系统存储
  3. 存储感知
  4. 更改自动释放空间的方式
  5. 删除我的应用不使用的临时文件

匿名用户

随着临时目录的删除,会话数据也会丢失。但是如果我正确理解你的问题,这与你的闪亮应用程序无关。所以如果你不需要昨天的任何会话数据,你可以调用“。rs.restartR()”来重新启动你的R会话,从而设置一个新的临时目录。你可能会收到一个错误,你的最后一个会话无法保存(因为目录不再存在)。在此之后,你应该能够再次启动你的闪亮应用程序。