だから私はこのライブラリを使用しています: https://github.com/flyingdolphinstudio/Objective-Zip
私はそれを実装し、UIImage と NSString を取り、それぞれ .zip ファイルで .png と .txt にしようとしています。
これらは私の 2 つの懸念事項です。以下の *zipFile をドキュメント ディレクトリに保存しようとしています。
ドロップボックス API を使用すると、ファイル自体を提供してパスをスキップすることができないのはなぜですか。最初に.zipをドキュメントディレクトリに保存してからパスを取得して、それをドロップボックスにアップロードできるようにする必要があるようです。私はそれをしなければなりませんか?
...writeToFile 行で、ZipFile が writeToFile に応答しない可能性があるという警告が表示されるので、ドキュメント ディレクトリに適切に保存するにはどうすればよいですか?
とにかく、これは私がこれまでに持っているコードです:
NSString *filename = [NSString stringWithFormat:@"%@.zip", textField.text];
ZipFile *zipFile= [[ZipFile alloc] initWithFileName:filename mode:ZipFileModeCreate];
//Image
NSString *nameImage = @"Image.png";
NSMutableDictionary *theDictionary = [Singleton sharedSingleton].dictionary;
NSData *data = [theDictionary objectForKey:@"image"];
ZipWriteStream *writeImage = [zipFile writeFileInZipWithName:nameImage compressionLevel:ZipCompressionLevelBest];
[writeImage writeData:data];
[writeImage finishedWriting];
//Text
NSString *nameText = @"Text.txt";
NSData *dataText = [textView.text dataUsingEncoding:NSUTF8StringEncoding];
ZipWriteStream *writeText = [zipFile writeFileInZipWithName:nameText compressionLevel:ZipCompressionLevelBest];
[writeText writeData:dataText];
[writeText finishedWriting];
//Now we HAVE to save it to the documents directory to get it to work with dropbox
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0]; //Get the docs directory
NSString *filePath = [documentsPath stringByAppendingPathComponent:filename]; //Add the file name
[zipFile writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:NULL];
//Save to Dropbox
NSString *zipPath = [[NSBundle mainBundle] pathForResource:textField.text ofType:@"zip"];
[[self restClient] uploadFile:filename toPath:@"/" withParentRev:nil fromPath:zipPath];
それで、私はここで何が間違っていますか?
ありがとう!