0

これは私が使用しているコードです(少し変更されていますが、このスタックオーバーフローの質問から):

NSLog(@"Saving File...");

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:[detailDataSourceDict valueForKey:@"filepath"]]];
NSLog(@"This is the link you are downloading: %@",request);
AFHTTPRequestOperation *operation = [[[AFHTTPRequestOperation alloc] initWithRequest:request] autorelease];

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [paths objectAtIndex:0];
operation.outputStream = [NSOutputStream outputStreamToFileAtPath:path append:NO];

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"Successfully downloaded file to %@", path);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];

[operation start];

NSLog に「/Users/xxxx/Library/Application Support/iPhone Simulator/6.0/Applications/F29C1E99-A277-41DC-8205-6556B6123A85/Documents へのファイルのダウンロードに成功しました」というメッセージが表示されますが、Finder でそのフォルダーを開くと、ファイルが表示されません。私が間違っていることはありますか?コードでエラーが発生しません。どんな助けでも感謝します、ありがとう。


アップデート

AFNetworkライブラリを使用しています...

4

1 に答える 1

1

You're setting the download location to the actual Documents Directory, rather than a file in the directory. Update your code to use a specific file within the directory.

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [paths objectAtIndex:0]; //filepath to documents directory!
operation.outputStream = [NSOutputStream outputStreamToFileAtPath:[path stringByAppendingPathComponent:@"filename.extension"] append:NO];

Also, I think you may want to be setting the inputStream property rather than the outputStream because you are downloading a file rather that uploading one.

于 2012-11-18T01:55:56.527 に答える