2016-10-11 12 views
0

私はAppGroup Shared Container内に存在するファイルを持っています。ファイルを共有コンテナからアプリケーションバンドルにコピーすることができたかどうかは疑問でした。次のように
TPKファイルを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") 
} 

EDIT 2:私はちょうど動きに再びコードを変更しましたTPKファイルをドキュメントディレクトリにコピーします。
この作品は動作していると思いますが、TPKファイルをArcGISに読み込もうとするとエラーメッセージが表示されます。
現時点では、問題はArcGIS SDKに関連しており、アプリケーションバンドル以外のどこからでもTPKファイルを読み込むことはサポートされていないと考えています。

let destPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first! 
let fullDestPath = NSURL(fileURLWithPath: destPath).URLByAppendingPathComponent("localLayer.tpk") 
let fullDestPathString = fullDestPath!.path! 
+0

を必要に応じてそれを作成するには、バンドルにコピーカントフォルダはサンドボックス化されており、読み取り専用です。ドキュメントフォルダまたはアプリケーションサポートフォルダにコピー/移動することができます –

+0

エラーメッセージは何ですか? :) –

+0

とあなたはplz –

答えて

0

appSupportFolderはデフォルトでは存在しないかなり確信してイム - 必要な場合を除き、誰もがそれを作成しません - それは最初に検証しようと

pseudocode if(!fileExists(supportFolder)) { createDirectory(supportFolder) } 
関連する問題