如何解决在响应上下文中监视目录中文件/文件夹数量的好方法是什么?
这是我要在闪亮的应用程序中尝试做的简化版本:
## run a script that creates subdirectories
system('Rscript /path/to/dir/dir_generating_script.R')
## observe path and count new directories created
observe({
d_count <- list.dirs("/path/to/dir") %>% length()
showNotification(paste0(
"Current dir count: ",d_count
))
})
我在这里遇到的问题是,当脚本在后台运行时,由于d_count在更改,通知消息没有更新。该消息仅在脚本完成运行后才更新,但是我希望在运行时看到计数增加。有没有更好的方法来被动地监视目录?
解决方法
您可以使用reactivePoll()
创建一个反应性文件计数,该计数将定期检查(此处为1秒):
library(shiny)
library(tidyverse)
ui <- fluidRow(verbatimTextOutput("result"))
server <- function(input,output,session) {
file_count <- function() {
list.dirs(".",full.names = FALSE,recursive = FALSE) %>%
length()
}
current_file_count <- reactivePoll(1000,session,file_count,file_count)
output$result <- renderText(current_file_count())
}
shinyApp(ui = ui,server = server)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。