Как проверить наличие локального файла
Я создал файл разметки 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"
Ответы
Ответ 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" )
Это точно не отвечает на его вопрос, но я подумал, что это может быть полезно для тех, кто просто хочет проверить, существует ли в их каталоге конкретный файл.