【问题标题】:Download file to Folder in iPhone将文件下载到 iPhone 中的文件夹
【发布时间】:2012-07-23 13:07:54
【问题描述】:

我是 iPhone 新手,

我制作了一个应用程序,当用户下载任何内容时,它会被下载到DocumentDirectory

我想在DocumentDirectory创建的文件夹中下载

如何做到这一点?

我想我会下载文件到我的DocumentDirectory,然后我会将该文件移动到我在DocumentDirectory 内的文件夹中。

这是个好习惯吗?

这是我的代码 sn-p,但我仍然无法移动我的文件。

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {

    NSString *file = [NSString stringWithString:[url absoluteString]];
    NSURL *fileURL = [NSURL URLWithString:file];

    NSURLRequest *req = [NSURLRequest requestWithURL:fileURL];
    [NSURLConnection connectionWithRequest:req delegate:self];


    NSString *DestPath=[[[SourcePath stringByAppendingString:@"/"]stringByAppendingString:BookCateg]stringByAppendingString:@"/"];

                   if ([fm copyItemAtPath:SourcePath toPath:DestPath error:&error]) 
                   {
                      NSLog(@"Success !");
                   }
                  else{
                      NSLog(@"Fail to Move!");
                   }

}

我的日志显示Fail to Move!

我们将不胜感激。

【问题讨论】:

    标签: iphone ios ipad nsfilemanager nsdocumentdirectory


    【解决方案1】:

    您可以使用以下代码:

    NSString *stringPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:@"/Your Folder Name"];
    
        error = nil;
        if (![[NSFileManager defaultManager] fileExistsAtPath:stringPath])
            [[NSFileManager defaultManager] createDirectoryAtPath:stringPath withIntermediateDirectories:NO attributes:nil error:&error];
    NSString *DestPath=[stringPath stringByAppendingString:@"/Your file Name"];
    

    【讨论】:

      【解决方案2】:

      您通过附加字符串而不是通过附加路径组件的字符串来使用字符串,这将附加路径并且您的文件将移动到那里

      享受编码

      【讨论】:

        【解决方案3】:

        您应该直接将文件下载到文档目录的文件夹中,为此您需要按照@iPhone Developer 的建议创建目录并在该目录中写入文件

        例如:

          NSString *stringPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:@"/File"];
          error = nil;
          if (![[NSFileManager defaultManager] fileExistsAtPath:stringPath])
            [[NSFileManager defaultManager] createDirectoryAtPath:stringPath withIntermediateDirectories:NO attributes:nil error:&error];
        
          NSURL *url = [NSURL URLWithString:@"http://www.ndqatar.mobi/18December/admin/rington/133/QatarDay13.mp3"];
          NSData *data = [NSData dataWithContentsOfURL:url];
          if(data)
          {
            stringPath = [stringPath stringByAppendingPathComponent:[url lastPathComponent]];
            [data writeToFile:stringPath atomically:YES];
          }
        

        如果你愿意,你可以像这样移动文件:

         NSString *destPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:@"/Dest"];
          error = nil;
          if (![[NSFileManager defaultManager] fileExistsAtPath:destPath])
            [[NSFileManager defaultManager] createDirectoryAtPath:destPath withIntermediateDirectories:NO attributes:nil error:&error];
          destPath = [destPath stringByAppendingPathComponent:[stringPath lastPathComponent];];
        
         [[NSFileManager defaultManager] copyItemAtPath:stringPath toPath:destPath error:&error];
        

        【讨论】:

          【解决方案4】:
          Framework: ReactJS
          Library: Material-UI
          Version: 4.0
          

          我尝试使用https://material-ui.com/api/button/ (在按钮的href中添加链接)它适用于ipad/iphone/ios safari。

          import Button from '@material-ui/core/Button';
          <Button href={add_your_link_here} />
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-04-24
            • 1970-01-01
            • 2021-05-28
            • 2022-01-14
            • 2019-02-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多