我在nsstring类中使用writeToUrl方法保存文本文件。数据被保存。我通过打开文件确认了它,但是当我打电话
时NSData *tempData = [NSData dataWithContentsOfFile:[tempFileURL absoluteString]];
我得到tempData的nill值。顺便说一下,在检索数据时,我必须使用[tempFileURL absoluteString]。
NSString *testString = @"Hello World";
NSString *fileName = @"TestFile.txt";
NSString *folderName = @"FolderName";
NSURL *documentsURL = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
NSURL *localFolder = [documentsURL URLByAppendingPathComponent:folderName isDirectory:YES];
[[NSFileManager defaultManager] createDirectoryAtURL:localFolder withIntermediateDirectories:YES attributes:nil error:NULL];
NSURL *tempFileURL = [localFolder URLByAppendingPathComponent:fileName];
NSError *error = nil;
[testString writeToURL:tempFileURL
atomically:YES
encoding:NSUTF8StringEncoding
error:&error];
NSData *tempData = [NSData dataWithContentsOfFile:[tempFileURL absoluteString]];
答案 0 :(得分:2)
当您在本地文件系统中有文件URL并且想要获取该文件的路径时,应该使用path
方法。不要使用absoluteString
。 absoluteString
将在开头包含file://
方案,该方案在路径中无效。
答案 1 :(得分:0)
错误是读取文件和路径。 URL和路径之间存在不匹配。
使用:
NSData *tempData = [NSData dataWithContentsOfFile:[tempFileURL path] options:0 error:&error];
或
NSData *tempData = [NSData dataWithContentsOfURL:tempFileURL options:0 error:&error];
dataWithContentsOfURL