Загрузить файл в папку в iPhone

Я новичок в iPhone,

Я сделал приложение, в котором, когда пользователь загружает все, что он загружается в DocumentDirectory

Я хочу скачать внутри моей папки, которую я создал в DocumentDirectory

Как этого добиться?

Я думал, что я буду загружать файл в мой DocumentDirectory и я перенесу этот файл в свою папку внутри DocumentDirectory,

Это хорошая практика?

Вот мой фрагмент кода, но я все еще не могу переместить свой файл.

- (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!

Любая помощь будет оценена.

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

Вы можете использовать следующий код:

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

Вы используете строку, добавляя строку вместо строки, добавляя компонент пути, это добавит путь, и ваш файл будет перемещен туда

Наслаждайтесь кодированием

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} />
Другие вопросы по тегам