Подтвердить что ты не робот

Как проверить наличие локального файла

Я создал файл разметки R, который начинается с загрузки файла из Интернета. Я обнаружил, что cache = TRUE является немного flaky, поэтому я хочу установить условие if, чтобы проверить загруженный файл перед его загрузкой.

Текущий код - всегда загружает файл

fileURL <- "https://dl.dropbox.com/u/7710864/courseraPublic/samsungData.rda"
setInternet2(TRUE)
download.file(fileURL ,destfile="./data/samsungData.rda",method="auto")
load("./data/samsungData.rda")

Желаемый код - загружать только, если он еще не загружен

 destfile="./data/samsungData.rda"    
 fileURL <-
 "https://dl.dropbox.com/u/7710864/courseraPublic/samsungData.rda"   
 if (destFile doesNotExist) {
    setInternet2(TRUE)
    download.file(fileURL ,destfile,method="auto") }
    load("./data/samsungData.rda")
 }
 load(destfile)

Какой синтаксис даст мне условие "destFile doesNotExist"

4b9b3361

Ответ 1

Вы можете использовать tryCatch

  if(!file.exists(destfile)){
    res <- tryCatch(download.file(fileURL,
                              destfile="./data/samsungData.rda",
                              method="auto"),
                error=function(e) 1)
    if(dat!=1) load("./data/samsungData.rda") 
}

Ответ 2

В соответствии с ответом @agstudy

 destfile="./data/samsungData.rda" 
 fileURL <-
 "https://dl.dropbox.com/u/7710864/courseraPublic/samsungData.rda"   
 if (!file.exists(destfile)) {
    setInternet2(TRUE)
    download.file(fileURL ,destfile,method="auto") }
    load("./data/samsungData.rda")
 }
 load(destfile)

Ответ 3

Простой способ проверить наличие файла в вашем рабочем каталоге: которые (list.files() == "nameoffile.csv" )

Это точно не отвечает на его вопрос, но я подумал, что это может быть полезно для тех, кто просто хочет проверить, существует ли в их каталоге конкретный файл.