如何获取 iphone 中下载的 zip 文件名

Posted

技术标签:

【中文标题】如何获取 iphone 中下载的 zip 文件名【英文标题】:How to obtain the zip filename being downloaded in iphone 【发布时间】:2011-07-08 17:42:06 【问题描述】:

目前使用 SSZipArchive 方法下载 zip 文件并在 Documents 目录文件夹中解压。我正在从 URL 下载 zip 文件名,目前不知道文件名,因为每次有任何更新时它都会更改。收到数据后如何检索文件名?

- (void)viewDidLoad 
   fileManager = [NSFileManager defaultManager];

   NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
   directoryPath = [paths objectAtIndex:0];
   filePath = [NSString stringWithFormat:@"%@/ZipFiles.zip", directoryPath];

    NSURL *url=[NSURL URLWithString:@"http://www.abc.com/test/test.cfc?id=123"];

    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
    [request setURL:url];
   [request setHTTPMethod:@"POST"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];

NSError *error;
NSURLResponse *response;
NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

[fileManager createFileAtPath:filePath contents:urlData attributes:nil];
[SSZipArchive unzipFileAtPath:filePath toDestination:directoryPath];

 NSString *responseString = [[NSString alloc] initWithData:urlData encoding:NSASCIIStringEncoding];


 ///***Answer to my own question for future needs****//
  NSString *fileName = [response suggestedFilename];


【问题讨论】:

【参考方案1】:

NSURLResponse 有一个方法- (NSString *)suggestedFilename 将尝试按此顺序获取文件名。

    使用内容处置标头指定的文件名。 URL 的最后一个路径部分。 URL 的主机。

content disposition 标头将是最佳解决方案,因此请确保服务器设置它。

【讨论】:

乔:谢谢它确实有效。只是想就同一主题问您一个简单的问题:您将如何通过 HTTPRequest 将文件名作为 POST 发送?就像我如何将其用作字符串并将其作为 POST 发送? 我实际上不确定,因为我还没有尝试过购买尝试发送内容处置标头,然后在服务器上检查。

以上是关于如何获取 iphone 中下载的 zip 文件名的主要内容,如果未能解决你的问题,请参考以下文章

iPhone - 获取与 zip 名称相同的 zip 文件名和文件夹

从51ipa下载的zip文件如何转为ipa文件

如何用7-zip分割文件

ipad下下来是压缩文件,网上说是把zip.改成ipa,在哪改,怎么改?

如何使用 Objective C 在 iphone 中制作 .zip 文件?

C#中如何获取程序的当前文件夹名称并将zip文件解压到当前文件夹? [复制]