2012-05-07 5 views
1

既存のディレクトリを圧縮していないが、私が作るときに、この例外は、私には表示されていること:また、私目的のzipはオーディオファイルで作業していないと私はzipファイルにオーディオファイルを圧縮する目的-ジッパーを使用してい

Terminating app due to uncaught exception 'ZipException', reason: 
'Error in opening '/Users/macuser/Library/Application 
Support/iPhoneSimulator/5.1/Applications/79E57C84-3B47-437C-BB44- 
89BAAB034DF5/Documents/ADDRecordFileForTest_0_07-05-2012 12:42:45.caf' in zipfile 

最初のディレクトリにすべての私のオーディオファイルを配置し、これらのディレクトリを圧縮する目的-ZIPを使用しますが、以下の例外もarrisesしようとした:

Terminating app due to uncaught exception 'ZipException', reason: 
'Can't open '/Users/macuser/Library/Application Support/iPhone Simulator/5.1/ 
Applications/79E57C84-3B47-437C-BB44-89BAAB034DF5/Documents/ 
CurrentMeeting_AudioFiles 

目的-Zipは、テキストファイルのみをサポートしている、なぜ目的-Zipは」doesnの既存のフォルダを圧縮する?助けを歓迎します、ありがとう。

答えて

0

ファイル名のコロンは問題を引き起こす可能性があります。

ADDRecordFileForTest_0_07-05-2012 12:42:45.caf 

ダッシュを使用することを検討してください。私はスペースも使用しません。少なくとも、ユーザーが作成したファイル名(利便性やユーザーエクスペリエンスのために)に取り組む必要がない限り。

さらに詳しくzipは通常、ディレクトリを保持しません。ただし、フォルダ内のファイルを圧縮すると、ディレクトリはパスの一部になります。私はObjective-Zipを使用していませんでしたが、ZipArchiveが現在必要としているので、私のためにはうまくいきません。

- (NSDictionary *)directoriesAndFilesAtPath:(NSString *)path error:(NSError * __autoreleasing *)error { 
    NSFileManager *fileManager = [[NSFileManager alloc] init]; 
    NSError *fileManagerError = nil; 
    NSArray *directoryContents = [fileManager contentsOfDirectoryAtPath:path error:&fileManagerError]; 
    if (!directoryContents) { 
     *error = fileManagerError; 
     return nil; 
    } 

    BOOL isDir; 
    NSMutableArray *dirs = [NSMutableArray arrayWithCapacity:10]; 
    NSMutableArray *files = [NSMutableArray arrayWithCapacity:10]; 
    for (NSString *object in directoryContents) { 
     if ([fileManager fileExistsAtPath:[path stringByAppendingPathComponent:object] isDirectory:&isDir]) { 
      if (isDir) { 
       [dirs addObject:[path stringByAppendingPathComponent:object]]; 
      } else { 
       [files addObject:[path stringByAppendingPathComponent:object]]; 
      } 
     } 
    } 

    return @{kDirectoriesKey: dirs, kFilesKey: files}; 
} 

あなたは、その後のzipにファイルを追加する再帰的なメソッドを使用し、各ディレクトリのために自分自身を呼び出すことができます。私は基本的にこのように動作しますZIPARCHIVEための「ジップ-r」のカテゴリを、書きました。

関連する問題