Прочитать информацию о файле zip-файла в r - PullRequest
0 голосов
/ 30 апреля 2018

Я хочу прочитать время (метку времени) zip-файлов в определенной папке. Я пробовал это:

file.info("C:/Users/foo/")$mt

Кажется, что это читает все метки времени других не-zipt файлов в папке.

Я тоже использовал

file.info(list.files("C:/Users/foo ", pattern=".zip"))

Это привело к тому, что NA для всех переменных: size, isdir, mtime и т. Д. Все являются

list.files("C:/Users/foo ", pattern=".zip")) показывает zip-файлы, как и ожидалось.

В: Как прочитать дату и время создания zip-файлов (в папке)?

Ответы [ 2 ]

0 голосов
/ 30 апреля 2018

Это похоже на работу:

file.info(list.files("C:/Users/foo ", pattern=".zip", full.names=TRUE)) $mt

добавление full.names=TRUE к list.files () кажется решением проблемы.

0 голосов
/ 30 апреля 2018

Сначала я игнорирую один и, возможно, два опечатки: 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...