1

NSFileManagerアイテムがファイルかサブディレクトリかを判断するために使用しようとしています。

これは私が持っているものです:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];

NSError *error = nil;
NSArray *files = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:[documentsDir stringByAppendingPathComponent:@"exported"] error:&error];

for (NSString *filename in files) {
    NSString *path = [documentsDir stringByAppendingPathComponent:filename];        
    BOOL isDir;
    if([[NSFileManager defaultManager] fileExistsAtPath:documentsDir isDirectory:&isDir] && isDir){
        NSLog(@"%@ is a directory", path);  
    }
    else {
        NSLog (@"%@ is a file", path);
    }
}

ファイルとサブディレクトリの「ディレクトリです」と表示されます。同様のSOの質問を検索しましたが、そこで見つけたコードと使用しようとしているコードに違いはありません。

4

1 に答える 1

4

ファイルとディレクトリをテストするために間違ったパスを使用しているようです

あなたのfileExistsAtPath: あなたはテストしていて、そうではdocumentsDirありませんpath

これを修正

if([[NSFileManager defaultManager] fileExistsAtPath:documentsDir isDirectory:&isDir] && isDir)

if([[NSFileManager defaultManager] fileExistsAtPath: path isDirectory:&isDir] && isDir)
于 2012-06-21T08:59:40.403 に答える