1

私はこれを何時間も見てきましたが、私の問題を理解できないようです。これが私のコードです

NSFileManager* fileManager = [[NSFileManager alloc] init];
                    NSArray* urls = [fileManager URLsForDirectory:NSCachesDirectory inDomains:NSUserDomainMask];

                NSArray* directory = [fileManager contentsOfDirectoryAtURL:urls[0] includingPropertiesForKeys:@[@"NSCreatingDateKey"] options:NSDirectoryEnumerationSkipsHiddenFiles error:nil];
                NSLog(@"%@", directory);
                NSURL* pathURL = [[urls objectAtIndex:0] URLByAppendingPathComponent:@"stanfordpictures/"];
                if ([directory count] < 3) {
                    [fileManager createDirectoryAtURL:pathURL withIntermediateDirectories:NO attributes:nil error:nil];
                }
                NSString* pictureString = [NSString stringWithFormat:@"picture%d.png", self.cacheCounter];
                NSURL* pictureURL = [pathURL URLByAppendingPathComponent:pictureString];
                NSURL* absolutePictureURL = [pictureURL absoluteURL];
                NSLog(@"%@", pictureURL);
               NSData *cacheImageData = UIImagePNGRepresentation(image);
                if ([cacheImageData writeToURL:pictureURL atomically:YES])
                {
                    NSLog(@"It worked");
                    NSArray* cacheDirectory = [fileManager contentsOfDirectoryAtPath:[pathURL absoluteString] error:nil];
                    NSLog(@"%@", cacheDirectory);
                }
                else
                {
                    NSLog(@"An error occurred");
                }

そして、ここに私のエラーログがあります

2013-10-03 22:36:48.920 Assignment4[14754:c07] (
"file://localhost/Users/ddelnano/Library/Application%20Support/iPhone%20Simulator/6.1/Applications/683F512B-7FFC-4C3E-9526-715B09AABD56/Library/Caches/com.DelNano.Dom.Assignment4/",
"file://localhost/Users/ddelnano/Library/Application%20Support/iPhone%20Simulator/6.1/Applications/683F512B-7FFC-4C3E-9526-715B09AABD56/Library/Caches/Snapshots/",
"file://localhost/Users/ddelnano/Library/Application%20Support/iPhone%20Simulator/6.1/Applications/683F512B-7FFC-4C3E-9526-715B09AABD56/Library/Caches/stanfordpictures/"

)

file://localhost/Users/ddelnano/Library/Application%20Support/iPhone%20Simulator/6.1/Applications/683F512B-7FFC-4C3E-9526-715B09AABD56/Library/Caches/stanfordpictures/picture0.png
2013-10-03 22:36:49.031 Assignment4[14754:c07] It worked
2013-10-03 22:36:49.032 Assignment4[14754:c07] (null)

したがって、基本的にNSData writeToFile:atomically:はtrueを返しますが、ディレクトリ「stanfordphotos」を確認すると、NSFileManagerメソッドはnull配列を返します。どんな助けでも大歓迎です。

4

1 に答える 1

0

上記の CodaFi のコメントは素晴らしいです。また、同じことをしたい場合は、以下のようにすることもできます。私はこの行を削除しましたが。必要な場合。 NSArray* cacheDirectory = [fileManager contentsOfDirectoryAtPath:[pathURL absoluteString] error:nil];配列に関係なく、ファイルの名前を文字列として直接取得できるように、:-

    NSFileManager* fileManager = [[NSFileManager alloc] init];
    NSArray* urls = [fileManager URLsForDirectory:NSCachesDirectory inDomains:NSUserDomainMask];

    NSArray* directory = [fileManager contentsOfDirectoryAtURL:urls[0] includingPropertiesForKeys:@[@"NSCreatingDateKey"] options:NSDirectoryEnumerationSkipsHiddenFiles error:nil];
    NSLog(@"%@", directory);
    NSURL* pathURL = [[urls objectAtIndex:0] URLByAppendingPathComponent:@"stanfordpictures/"];
   if ([directory count] < 3) {
        [fileManager createDirectoryAtURL:pathURL withIntermediateDirectories:NO attributes:nil error:nil];
    }
    NSString* pictureString = @"hussain_2156.pptx";//[NSString stringWithFormat:@"picture%d.png", self.cacheCounter];
    NSURL* pictureURL = [pathURL URLByAppendingPathComponent:pictureString];
    NSLog(@"%@", pictureURL);
    NSData *cacheImageData = [NSData dataWithContentsOfFile:@"/Users/hussain/Desktop/hussain_2156.pptx"];
    if ([cacheImageData writeToURL:pictureURL atomically:YES])
    {
        NSLog(@"It worked");
        NSString *file=nil;
        NSDirectoryEnumerator *dirEnum = [fileManager enumeratorAtPath:[pathURL path]];
        while(file =[dirEnum nextObject])
        {
            NSLog(@"%@",file);
        }
    }
    else
    {

        NSLog(@"An error occurred");
    }
于 2013-10-04T05:51:57.617 に答える