Я хочу иметь возможность читать и редактировать пространственные таблицы SQlite, которые загружаются с сервера. Они поставляются сжатыми.
В этих файлах zip есть папка, в которой содержится информация о модели, которая использовалась в качестве имени папки, и поэтому иногда она может быть довольно длинной.
Если это имя папки становится слишком длинным, разархивировать папку не удается. В конечном итоге мне не нужно разархивировать файл. Но, похоже, я получаю ту же ошибку, когда использую unz в readOGR.
Я не могу придумать, как воссоздать реплицируемый пример, но могу привести пример пути, который работает, и пути, который не работает.
Работает: "S: \ 3_Projects \ CRC00001 \ 4699-12103 \ script_initialised model \ performance_assessment.sqlite"
4699-12103 - это имя файла zip, а "scene_initialised model" - подпапка, вызывающая проблемы
Сбои: "" S: \ 3_Projects \ CRC00001 \ 4699-12129 \ scene_tree_canopy_7, number_of_trees_0, roads_False, compatibility_75, year_2030, nrz_cover_0.6, green_roofs_0 \ performance_assessment.sqlite "101 * 463
463 * * 109 *имя zip-файла и "script_tree_canopy_7, number_of_trees_0, roads_False, compatibility_75, year_2030, nrz_cover_0.6, green_roofs_0" являются подпапкой, вызывающей проблемы
Код будет работать аналогично этому.
list_zips <- list.files(pattern = "*.zip", recursive = TRUE, include.dirs = TRUE)
unzip(zipfile = paste(getwd(),"/",list_zips[i],sep = ""),
exdir=substr(paste(getwd(),"/",list_zips[i],sep = ""),1,nchar(paste(getwd(),"/",list_zips[i],sep = ""))-4))
Но я бы предпочел напрямую загружать пространственный файл без разархивирования. Такие как:
sq_path <- unzip(list_zips[i], list=TRUE)[2,1]
temp <- unz(paste(getwd(),"/",list_zips[i],sep = ""),sq_path)
vectorImport <- readOGR(dsn=temp, layer="micro_climate_grid")
Любая помощь будет оценена! Тим