Сначала я игнорирую один и, возможно, два опечатки: Find.file
не существует, и хотя это возможно, я не часто вижу пробел в конце пути.
Позвольте мне показать вам, где ваша логика чего-то не хватает:
list.files("c:/Users/foo", pattern=".zip")
# [1] "file1.zip" "file2.zip"
Хорошо, пока все хорошо.
file.info(list.files("c:/Users/foo", pattern=".zip"))
# size isdir mode mtime ctime atime exe
# file1.zip NA NA <NA> <NA> <NA> <NA> <NA>
# file2.zip NA NA <NA> <NA> <NA> <NA> <NA>
Хорошо, это проблема. Зачем? Давайте разберемся с этим, посмотрев на один конкретный файл. Первый возврат из рабочего list.files
- это file1, давайте попробуем это:
file.info("file1.zip")
# size isdir mode mtime ctime atime exe
# file1.zip NA NA <NA> <NA> <NA> <NA> <NA>
Все еще проблема. Посмотрим, где мы находимся ...
getwd()
# [1] "c:/Users/foo/somewhere/else"
file.info
не знает, какой аргумент path=
вы указали list.files
: он предполагает, что вы указываете абсолютные или относительные пути к именам файлов. И вы: путь относительно текущего каталога. Если вы full.names=TRUE
предоставите полный путь ко всем перечисленным файлам, вы увидите:
list.files("c:/Users/foo", pattern=".zip", full.names=TRUE)
# [1] "c:/Users/foo/file1.zip" "c:/Users/foo/file2.zip"
это лучше подготовлено для других функций. Отсюда file.info(...)
должно работать нормально.
file.info(list.files(path="c:/Users/foo", pattern=".zip", full.names=TRUE))
# size isdir mode mtime ctime atime exe
# c:/Users/foo/file1.zip 0 FALSE 666 2018-04-30 07:31:24 2018-04-30 07:31:24 2018-04-30 07:31:24 no
# c:/Users/foo/file2.zip 0 FALSE 666 2018-04-30 07:31:26 2018-04-30 07:31:26 2018-04-30 07:31:26 no