【Demo 0023】FoundationKit 目录管理

一、NSFileManager 目录操作

     1. 创建目录

     createDirectoryAtPath:withIntermediateDirectories:nilerror 

     2. 更改当前目录

     changeCurrentDirectoryPath:

     3. 遍历目录

     enumeratorAtPath:    此方法在遍历时会将子目录或文件全部会遍历到

     contentsOfDirectoryAtPath:error  此方法仅遍历本目录下的目录和文件, 子目录下不会遍历

     4.  判断是文件还是目录

     fileExistsAtPath:string isDirectory:     isDirectory返回结果,YES 表示为目录 NO 表示文件

     5.  重命名或移动目录

     moveItemAtPath:toPath: 

     6. 删除目录

     removeItemAtPath: error:

     7. 获取当前用户名        

      NSFullUserName()

      NSUserName()

     8. 获取Home目录

     NSHomeDirectory());

     NSHomeDirectoryForUser

     9. 获取临时目录

     NSTemporaryDirectory()

二、练习代码

       NSFileManager* fm = [NSFileManagerdefaultManager];

        [fm createDirectoryAtPath:@"test"withIntermediateDirectories:YESattributes:nilerror:nil];

         NSString* currentDirectory;

        if ([fm changeCurrentDirectoryPath:@"test"])

        {

            currentDirectory = [fm currentDirectoryPath];

            NSLog(@"new current Directory: %@", currentDirectory);

        }

        

        // create directorys & files

        NSArray* dirNames   = [NSArray arrayWithObjects:@"test1", @"tests2", @"test3", nil];

        NSArray* fileNames  = [NSArrayarrayWithObjects:@"test1.txt", @"tests2.doc", @"test3.cpp", nil];

        if ([dirNames count] == [fileNames count])

        {

            for (int ii = 0; ii < [dirNames count]; ii++)

            {

                [fm createDirectoryAtPath:[dirNames objectAtIndex:ii] withIntermediateDirectories:YESattributes:nilerror:nil];

                [fm changeCurrentDirectoryPath:[dirNames objectAtIndex:ii]];

                [fm createFileAtPath:[fileNames objectAtIndex:ii] contents:nilattributes:nil];

                [fm changeCurrentDirectoryPath:currentDirectory];

            }

        }

        

        // enumerator directory

        NSString* path      = NULL;

        BOOL isDirectory    = NO;

        NSDirectoryEnumerator* dirEnum = [fm enumeratorAtPath:currentDirectory];

        NSLog(@"enumeratorAtPath enum directory:");

        while (path = [dirEnum nextObject])

        {

            [fm fileExistsAtPath:path isDirectory:&isDirectory];

            if (isDirectory)

            {

                NSLog(@"%@ dir", path);

            } else {

                NSLog(@"%@", path);

            }

        }

        

        NSLog(@"contentsOfDirectoryAtPath enum directory:");

        NSArray* content = [fm contentsOfDirectoryAtPath:currentDirectory error:nil];

        for (NSString* string in content) {

            [fm fileExistsAtPath:string isDirectory:&isDirectory];

            NSLog(@"%@ %@", string, isDirectory ? @"dir" : @"");

        }

        

        // rename directory

        [fm moveItemAtPath:@"test1"toPath:@"ztercel"error:nil];

        

        // remove directory

        if ([fm removeItemAtPath:currentDirectory error:nil])

        {

            NSLog(@"remove successfully");

        }

        

        NSLog(@"full User Name: %@", NSFullUserName());

        NSLog(@"user Name: %@", NSUserName());

        NSLog(@"Home directory: %@", NSHomeDirectory());

        NSLog(@"Home directory for user: %@", NSHomeDirectoryForUser(@"ztercel"));

        NSLog(@"temp directory: %@", NSTemporaryDirectory());

}

posted @ 2013-03-06 16:08  zTercel  阅读(403)  评论(0)    收藏  举报