如何获取iPhone中正在下载的zip文件名

发布于 2024-11-19 01:26:36 字数 1274 浏览 1 评论 0原文

目前使用 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];

}

Currently using SSZipArchive method to download the zip file and unzip at Documents directory folder. I am downloading the zip file name from URL and currently unaware of the file name because it changes each time there are any updates. How can I retrieve the file name when I receive my data ?

- (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];

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

﹂绝世的画 2024-11-26 01:26:36

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

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

内容处置标头将是最好的解决方案,因此请确保服务器设置它。

NSURLResponse has a method - (NSString *)suggestedFilename which will attempt to get the file name in this order.

  1. A filename specified using the content disposition header.
  2. The last path component of the URL.
  3. The host of the URL.

The content disposition header would be the best solution so make sure that the server sets it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文