复制目录的内容但不包括Cocoa中的子目录

时间:2010-05-29 04:18:30

标签: cocoa macos directory copy

在Cocoa中,有没有办法复制目录中的所有文件而不复制目录的子目录?

1 个答案:

答案 0 :(得分:4)

一种方法是根据NSFileManager s -fileExistsAtPath:isDirectory:的结果有条件地复制目录中的项目:

NSFileManager *manager = [NSFileManager defaultManager];
NSArray *files = [manager contentsOfDirectoryAtPath:pathFrom error:nil];

for (NSString *file in files) {
    NSString *fileFrom = [pathFrom stringByAppendingPathComponent:file];
    BOOL isDir;

    if (![manager fileExistsAtPath:fileFrom isDirectory:&isDir] || isDir) {
        continue;
    }

    NSString *fileTo = [pathTo stringByAppendingPathComponent:file];
    NSError  *error  = nil;
    [manager copyItemAtPath:fileFrom toPath:fileTo error:&error];
    if (error) // ...
}