我有一个存在于AppGroup共享容器中的文件,我想知道是否可以将文件从共享容器复制到应用程序包中。
我得到的文件路径如下:
let filePath = NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier("group.com.sharedBasemap")!.URLByAppendingPathComponent("localLayer.tpk")!.path
我尝试这样做的原因是,似乎ArcGIS SDK无法从应用程序组中识别TPK文件,因此我想知道如果我将其复制到应用程序包中是否会识别它。
编辑:根据Leo的评论,您似乎无法复制到捆绑包,因此我尝试复制到App Support文件夹。let filePath = NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier("group.com.sharedBasemap")!.URLByAppendingPathComponent("localLayer.tpk")!.path!
let appSupportFolder = String(NSFileManager.defaultManager().URLsForDirectory(.ApplicationSupportDirectory, inDomains: .UserDomainMask)[0]) + "localLayer.tpk"
let fileManager = NSFileManager.defaultManager()
if NSFileManager.defaultManager().fileExistsAtPath(filePath){
print("File exists at \(filePath)")
do {
try fileManager.copyItemAtPath(filePath, toPath: appSupportFolder)
}
catch let error as NSError {
print("Ooops! Something went wrong: \(error)")
}
} else {
print("File does not exist")
}
编辑2:我再次修改了代码,只是将TPK文件移动到文档目录中。
我相信该文件正在运行,但在尝试将TPK文件加载到ArcGIS时收到错误消息。 br />目前,我认为该问题与ArcGIS SDK有关,并且它不支持从应用程序包以外的任何地方加载TPK文件。
let destPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first!
let fullDestPath = NSURL(fileURLWithPath: destPath).URLByAppendingPathComponent("localLayer.tpk")
let fullDestPathString = fullDestPath!.path!
答案 0 :(得分:0)
我非常确定默认情况下appSupportFolder不存在 - 除非需要,否则没有人创建它 - 尝试首先验证它并在需要时创建它
pseudocode if(!fileExists(supportFolder)) { createDirectory(supportFolder) }