IOS中的NSFileManager

IOS中的NSFileManager

- (void)viewDidLoad
{
    [super viewDidLoad];

    NSFileManager * fileManager =[[NSFileManager alloc]init];
    NSArray  *Apath=[fileManager URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask];
    NSString *FilePath=[[Apath objectAtIndex:0] absoluteString];
    NSString *TEST =[FilePath stringByAppendingPathComponent:@"test10.txt"];
    BOOL flage =[[NSFileManager  defaultManager] fileExistsAtPath:TEST];

    if (flage)
    {
        NSLog(@"It's exist ");
    }
    else
    {
        NSLog(@"It is not here yet ");
        NSData * data =[[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:@"www.google.com"]];
        [data writeToFile:TEST atomically:YES];
    }
}


我只是想创建一个文本文件,它总是给我“它还没有在这里”
代码有什么问题吗?

最佳答案

您尚未创建文件,仅创建了文件路径:您需要将文件写入该路径。

   //after these lines ... (I've improved your variable names)
NSArray  *paths=[fileManager URLsForDirectory:NSDocumentDirectory
                                    inDomains:NSUserDomainMask];
NSString *filePath=[[paths objectAtIndex:0] absoluteString];
filePath =[filePath stringByAppendingPathComponent:@"test10.txt"];


   //try this
NSString* fileContent = @"some text to save in a file";
BOOL success = [fileContent writeToFile:filePath
              atomically:YES
                encoding:NSUTF8StringEncoding
                   error:nil]


但是要当心-文件存在性测试附带Apple警告:


  注意:不建议尝试基于文件系统的当前状态或文件系统上的特定文件来断言行为。这样做可能会导致奇怪的行为或比赛条件。尝试执行某个操作(例如加载文件或创建目录),检查错误并优雅地处理这些错误比尝试提前确定该操作是否成功要好得多。

关于ios - IOS中的NSFileManager,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19477328/

10-10 21:08