我可以在路径中写文件:
NSArray *dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docPath = [dirPaths objectAtIndex:0];
但我无法读取此文件。 我必须做什么?
此致
答案 0 :(得分:1)
上面列出的代码只是为您提供了文档目录的路径。
您需要提供特定文件......例如:
if([dirPaths count] > 0)
{
NSString * documentsDirectory = [dirPaths objectAtIndex: 0];
if(documentsDirectory)
{
NSString * docPath = [NSString stringWithFormat: @"%@/TheFileIAmLookingFor.txt",
[dirPaths objectAtIndex:0]];
}
}
然后尝试类似:
NSString * contentsOfDocPath = [[NSString alloc] initWithContentsOfFile: docPath]
获取文件的实际内容。
答案 1 :(得分:1)
您正在编写一个带有名称的文件到目录 当您想要读回该文件时,您必须告诉操作系统您要读取哪个文件。
下面是枚举目录中文件的代码,在本例中为“Documents”目录。
在某些时候,代码必须决定要阅读哪些文件。
NSString *docsDir = [NSHomeDirectory() stringByAppendingPathComponent: @"Documents"];
NSFileManager *localFileManager = [NSFileManager defaultManager];
NSDirectoryEnumerator *dirEnum =
[localFileManager enumeratorAtPath:docsDir];
NSString *file;
while (file = [dirEnum nextObject]) {
if ( [file isEqualToString: _The_NAME_YOU_ARE_LOOKING_FOR_] ) {
NSString *fullPath = [NSString stringWithFormat:@"%@/%@", docsDir,file];
// READ YOUR FILE FROM HERE
NSDictionary *attrs = [localFileManager
attributesOfItemAtPath:fullPath error:&error];
if ( error ) {
NSLog(@" error - %@", error);
} else {
NSLog(@" file : %@", file);
NSInteger fsiz = [attrs fileSize];
NSString *ftyp = [attrs fileType];
NSDate *fmod = [attrs fileModificationDate];
NSInteger fperm= [attrs filePosixPermissions];
NSLog(@" %9d : %@ : %@ : %@ : %d", fsiz, file, ftyp, fmod, fperm );
}
}
}