0
- (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];
    }
}

テキストファイルを作成しようとしていますが、常に「まだここにはありません」というメッセージが表示されますコードに何か問題がありますか??

4

1 に答える 1

1

ファイルを作成していません。ファイル パスを作成しただけです。そのパスにファイルを書き込む必要があります。

   //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 からの警告が表示されます。

注: ファイル システムまたはファイル システム上の特定のファイルの現在の状態に基づいて動作を推測しようとすることはお勧めしません。これを行うと、奇妙な動作や競合状態が発生する可能性があります。操作 (ファイルの読み込みやディレクトリの作成など) を試み、エラーをチェックし、それらのエラーを適切に処理する方が、操作が成功するかどうかを事前に判断しようとするよりもはるかに優れています。

于 2013-10-20T13:32:00.667 に答える