0

NSMainBuddle(code.zip)のcode.zip内の2つのファイルnames.txt、group.txtにzipファイルがあります。ここで、code.zipファイルにもう1つのファイルを追加します。つまり、Demo.txtを追加しようとしています。

- (IBAction)CreatezipAction:(id)sender{
ZipFile *zipFile= [[ZipFile alloc]initWithFileName:[[NSBundle mainBundle] pathForResource:@"code" ofType:@"zip"] mode:ZipFileModeCreate];
 ZipWriteStream *stream= [zipFile writeFileInZipWithName:@"Demo.txt" compressionLevel:ZipCompressionLevelBest];   
    NSString* str= @"Sample String…………";
    NSData* data=[str dataUsingEncoding:NSUTF8StringEncoding]; 
    [stream writeData:data];
    [stream finishedWriting];
}

lisAllFileActionに対応するボタンをクリックすると、次のように表示されるため、NSMainBunbleに正常に追加されます…。

- (IBAction)lisAllFileAction:(id)sender {
    ZipFile *unzipFile= [[ZipFile alloc]initWithFileName:[[NSBundle mainBundle] pathForResource:@"code" ofType:@"zip"] mode:ZipFileModeUnzip];
    NSArray *infos= [unzipFile listFileInZipInfos];
    for (FileInZipInfo *info in infos) {
        NSLog(@"- %@ %@ %d (%d)", info.name, info.date, info.size, info.level);        
    }
}

シミュレータ2の出力

012-06-04 11:55:42.143 zipDemo[1757:207] - code-Zip/names.txt 2012-5-30 17:19:00 +0000 983 (-1)
2012-06-04 11:55:42.143 zipDemo[1757:207] - code-Zip/names.txt 2012-06-01 20:07:50 +0000 2563 (-1)
2012-06-04 11:55:42.144 zipDemo[1757:207] - Demo.txt 2012-06-04 06:25:40 +0000 12 (9)
  1. このDemo.txtを手動で開くことができるか知りたいですか?
  2. 白黒コードの違いは何ですか-Zip/names.txt2012-06-0120:07:50とDemo.txt2012-06-0406:25:40 +0000 12(9)?
  3. このようにNSMainBundleにファイルを作成できますか?アプリに問題はありますか?
  4. 実際にDemo.txtファイルはどこで作成されましたか?
4

1 に答える 1

1

読み取り専用mainBundleです。mainBundleには何も書き込むことはできず、ロードするだけです。またはディレクトリにファイルを作成する必要があります。そのため、アプリを初めて起動するときに、zipファイルをmainBundleからDocumentsディレクトリにコピーしてから、mainBundleのzipファイルの代わりにこれを使用できます。DocumentsCaches

于 2012-06-04T07:25:52.833 に答える