Мне нужно открыть пользовательский файл в приложении, которое я создаю, но я не уверен, как это сделать. Импортированный файл содержит только папки, в которых содержится plist
например
fileName.customExtension / name uuid / name.plist
если я открою копию пользовательского файла и вставлю другую папку «name uuid» в обычную папку, которую затем импортирую в приложение, она будет работать нормально.
например
имя_файла / имя uuid / name.plist
Так как же я могу импортировать папку с пользовательским расширением прямо в приложение?
Я написал код ниже, если пользовательский файл вставлен в приложение для тестирования в данный момент, но он не работает, так как я предполагаю, что не преобразовываю расширение в обычную папку, а просто удаляю его.
func loadImportedFiles () {
var fileName: String = ""
let documentsDirectoryURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
do {
let fileUrls = try FileManager.default.contentsOfDirectory(at: documentsDirectoryURL, includingPropertiesForKeys: nil)
for plist in fileUrls {
let path: String = plist.path
let file = URL(fileURLWithPath: path).lastPathComponent
if file.contains(".CustomExtension"){
fileName = URL(fileURLWithPath: path).deletingPathExtension().lastPathComponent
}
}
} catch {
print("error path")
}
var objCBool: ObjCBool = true
let mainPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0];
let folderPath = mainPath + "/Folder/\(fileName)"
let isExist = FileManager.default.fileExists(atPath: folderPath, isDirectory: &objCBool)
if !isExist {
do {
try FileManager.default.createDirectory(atPath: folderPath, withIntermediateDirectories: true, attributes: nil)
} catch {
print(error)
}
}
let originalDataFilePath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.appendingPathComponent("\(fileName).CustomExtension")
let newDestinationPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.appendingPathComponent("Folder/\(fileName)")
do { try FileManager.default.moveItem(at: originalDataFilePath!, to: newDestinationPath!)
print("imported")
} catch {
print(error)
}
}
Если бы кто-то мог направить меня в правильном направлении, было бы здорово, спасибо!