在iPhone中将文件下载到文件夹
我是新来的iPhone,
我做了应用程序,当用户下载任何东西时,它被下载到DocumentDirectory
我想要在我在DocumentDirectory
创build的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!
任何帮助将不胜感激。
您应该直接将文件下载到文档目录的文件夹中,为此您需要创build一个名为@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"];
您正在使用string通过附加string而不是string通过追加path组件这将追加path,您的文件将移动到那里
享受编码