【发布时间】:2016-06-13 21:14:28
【问题描述】:
我想从某个特定的 URL 下载 NSFileManager 中的文件(pdf、doc、docx 等)。稍后当用户点击同一链接时,我想从 NSFileManager 检索文件。这是我完成的代码:
- (void)checkIfFileExist {
NSString *path1;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
path1 = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"Content-Directory"];
path1 = [path1 stringByAppendingPathComponent:@"sample.pdf"];
NSLog(@"The read path is %@", path1);
if ([[NSFileManager defaultManager] fileExistsAtPath:path1])
{
//File exists
NSData *file1 = [[NSData alloc] initWithContentsOfFile:path1];
if (file1)
{
}
}
else
{
NSURL *url = [NSURL URLWithString:@"http://fzs.sve-mo.ba/sites/default/files/dokumenti-vijesti/sample.pdf"];
NSData *urlData = [NSData dataWithContentsOfURL:url];
NSString *path;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
path = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"Content-Directory"];
path = [path stringByAppendingPathComponent:@"sample.pdf"];
NSLog(@"The written path is %@", path);
[[NSFileManager defaultManager] createFileAtPath:path
contents:urlData
attributes:nil];
}
}
现在每次我尝试从文件管理器中获取文件时,文件存在的条件总是返回 FALSE。我正在写入和读取文件的路径与我在控制台上检查过的路径相同。我犯了什么错误?
【问题讨论】:
-
发布您的代码以保存文件。
-
@Avi :它就在那里。 else 条件。
-
检查是否写入成功?文件是否出现在沙箱中?您可以通过 Xcode 中的“设备”窗口进行检查。
-
我认为您需要监控 createFileAtPath 函数的状态。成功或失败返回布尔值。
标签: ios objective-c xcode nsfilemanager nsdocumentdirectory