Скачать файл в папку на 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!

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


person Krunal    schedule 25.07.2012    source источник


Ответы (4)


Вы должны напрямую загрузить файл в папку каталога документов, и для этого вам нужно создать каталог, как предложил @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];
person Paresh Navadiya    schedule 25.07.2012

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

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"];
person Tripti Kumar    schedule 25.07.2012

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

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

person iSanjay    schedule 25.07.2012

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} />
person Shobhit Goel    schedule 14.08.2019