iphone 開発にZipを使用する方法

iphone 開発にZipを使用する方法

iphone内のデータを外部へ転送したい場合に、

Zip化した方が効率的が良いので、その方法を調査してみました。

iosの開発では、SSZipArchive を使用することにより、簡単にZipを使用することができます。

SSZipArchive の使用方法です。

1.SSZipArchive をダウンロード
https://github.com/soffes/ssziparchive

2.導入方法

  • ソースコード内のSSZipArchiveディレクトリをそのままプロジェクトへインポートしましょう。
  • libz.dylib(フレームワーク)を追加する。

3.SSZipArchive の使い方

// Zipを解凍
NSString *zipPath = @"解凍するZipのファイルパス";
NSString *destinationPath = @"解凍するファイルパス";
[SSZipArchive unzipFileAtPath:zipPath toDestination:destinationPath];
// Zip化
NSString *zippedPath = @"圧縮した後のファイルパス";
NSArray *inputPaths = [NSArray arrayWithObjects:
[[NSBundle mainBundle] pathForResource:@"photo1" ofType:@"jpg"],
[[NSBundle mainBundle] pathForResource:@"photo2" ofType:@"jpg"]
nil];
[SSZipArchive createZipFileAtPath:zippedPath withFilesAtPaths:inputPaths];
// Zipping directory
[SSZipArchive createZipFileAtPath:zippedPath withContentsOfDirectory:inputPath];

iphoneにてファイル圧縮を行う上で必要である処理のサンプル


  • iOSにて、ドキュメントのファイルパスを取得する方法


/**
 * ドキュメントのファイルパスを取得
 *
 * @return ドキュメントのファイルパス
 */
-(NSString *)getDocumentPath{
    
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    return [paths objectAtIndex:0];
}


  • iOSにて、文字列からNSDataを作成する方法

/**
 * 文字列からNSDataを作成
 *
 * @param  str 変換する文字列
 * @return 変換したNSData
 *
 */
-(NSData *)createNSDataAtNSString:(NSString *)str{
    
    return [NSData dataWithBytes:str.UTF8String
                          length:str.length];
}

  • iOSにて、ファイルを作成する方法

/**
 * ファイルの作成
 *
 * @param  filePath ファイル作成するパス
 * @param  dataString ファイルに書き込むNSData
 * @return 作成結果(TRUE:作成成功,FALSE:作成失敗)
 */
-(BOOL)createFile:(NSString *)filePath
         fileData:(NSData *)fileData{
    
    NSFileManager *fileManager = [NSFileManager defaultManager];
    BOOL result = [fileManager createFileAtPath:filePath
                                       contents:[NSData data] attributes:nil];
    if (!result) {
        NSLog(@"ファイルの作成に失敗");
    }
    
    return result;
}

  • iOSにて、ファイルを削除する方法

/**
 * ファイルの削除
 *
 * @param  filePath ファイルパス
 * @return 処理結果(TRUE:削除成功,FALSE:削除失敗)
 */
- (BOOL)deleteFile:(NSString *)filePath{
    
    NSError *error;
    
    // ファイルを削除
    BOOL result = [[NSFileManager defaultManager] removeItemAtPath:filePath
                                                             error:&error];
    if (result) {
        NSLog(@"ファイルを削除に成功:%@", filePath);
    } else {
        NSLog(@"ファイルの削除に失敗:%@", error.description);
    }
    
    return result;
}


  • iOSにて、ファイルの存在確認する方法

/**
 * ファイルの存在確認
 *
 * @param  : filePath 存在確認したいファイルパス
 * @return : 処理結果  (TRUE:存在あり,FALSE:存在なし)
 *
 */
-(BOOL)checkExsitFile:(NSString *)filePath{
    
    NSFileManager *fileManager = [NSFileManager defaultManager];
    return [fileManager fileExistsAtPath:filePath];
}

 

管理者オススメのアプリ

簡単に日々のスケジュールを管理できる無料のphoneアプリです。
スケジュール、シフト管理、TODO,お小遣い管理、メモなどいろいろ使用できるアプリ。
メニューの並び替えも自由!


すごい手帳を使ってみる

アクセス数: 無料カウンター




トラックバック(0)

トラックバックURL: http://smartwolf.sakura.ne.jp/Blog/mt-tb.cgi/171

コメントする

ウェブページ

Powered by Movable Type 5.2.7