iOS で .gz sqlite ファイルを解凍しようとしていますが、今までそのための適切なライブラリが見つかりませんでした。
私はそのように試しSSZipArchive
ました:
path = [[NSBundle bundleForClass:[self class]] pathForResource:@"test.sqlite" ofType:@"gz"];
NSString *documentsDir = (NSString *)[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
destination = documentsDir;
NSError *error;
BOOL success = [SSZipArchive unzipFileAtPath:path toDestination:destination overwrite:YES password:nil error: &error];
これは、圧縮された sqlite データベース ファイルでは機能しますが、sqlite データベースを gzip した場合は機能しません。その後、「zipファイルを開けません」というエラーが返されるたびに。
次に、 https://github.com/nicklockwood/GZIPGZIP
からこのアプローチを試しました。私はそのようなコードを使用しました:
path = [[NSBundle bundleForClass:[self class]] pathForResource:@"test.sqlite" ofType:@"gz"];
NSString *documentsDir = (NSString *)[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
destination = [documentsDir stringByAppendingPathComponent:@"test.sqlite"];
NSData *gzData = [NSData dataWithContentsOfFile:path];
NSData *ungzippedData = [gzData gunzippedData];
return [ungzippedData writeToFile:destination atomically:YES];
その後、ドキュメントフォルダーにtest.sqliteという名前のファイルを取得しましたが、それを開こうとすると、失敗が破損しているため失敗します。
そして、私の最後の試みはhttp://code.google.com/p/ziparchive/ZipArchive
からでした。私はそれを次のように使用しました:
ZipArchive* za = [[ZipArchive alloc] init];
if( [za UnzipOpenFile:path] ){
BOOL success = [za UnzipFileTo:destination overWrite:YES];
[za UnzipCloseFile];
return success;
}
しかし、これもファイルを開くことができません。
誰かが私を助けることができますか?