`

iPhone文件系统NSFileManager讲解

阅读更多
1、其中得 app root 可以用 NSHomeDirectory() 访问到;
2、Documents 目录就是我们可以用来写入并保存文件得地方,一般可通过:
    1.    de style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left:  
    2.    0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">
    3.    NSArray *paths = NSSearchPa
    4.    thForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); 
    5.    
    6.    de>
    7.    de style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;  
    8.    margin-top: 0px; margin-right: 0px; margin-bottom:  
    9.    0px; margin-left: 0px; ">NSString *documentsDirectory = [paths objectAtIndex:0]; 
    10.    de>
得到。
3、tmp 目录我们可以在里面写入一些程序运行时需要用得数据,里面写入得数据在程序退出后会没有。可以通过
    1.    NSString *NSTemporaryDirectory(void); 
方法得到;
4、文件一些主要操作可以通过NSFileManage 来操作,可以通过 [NSFileManger defaultManger] 得到它得实例。
相关得一些操作:
创建一个目录:比如要在Documents下面创建一个test目录,
    1.    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    2.    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    3.    NSLog(@”%@”,documentsDirectory); 
    4.    NSFileManager *fileManage = [NSFileManager defaultManager]; 
    5.    NSString *myDirectory = [documentsDirectory stringByAppendingPathComponent:@“test”]; 
    6.    BOOL ok = [fileManage createDirectoryAtPath:myDirectory attributes:nil];
取得一个目录下得所有文件名:(如上面的myDirectory)可用
    1.    NSArray *file = [fileManager subpathsOfDirectoryAtPath: myDirectory error:nil];

    1.    NSArray *files = [fileManager subpathsAtPath: myDirectory ];
读取某个文件:
    1.    NSData *data = [fileManger contentsAtPath:myFilePath];//myFilePath
是包含完整路径的文件名
或直接用NSData 的类方法:
    1.    NSData *data = [NSData dataWithContentOfPath:myFilePath];
保存某个文件:
可以用 NSFileManager的
    1.    - (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr;
或 NSData 的
    1.    - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile; 
    2.    - (BOOL)writeToFile:(NSString *)path options:(NSUInteger)writeOptionsMask error:(NSError **)errorPtr;
小结:详解iPhone开发中文件读写教程的内容介绍完了,希望通过本文的学习能对你有所帮助!
iPhone文件系统NSFileManager讲解是本文要介绍的内容,主要是通过iphone文件系统来学习NSFileManager的使用方法,具体内容来看本文详解。
iPhone文件系统:创建、重命名以及删除文件,NSFileManager中包含了用来查询单词库目录、创建、重命名、删除目录以及获取/设置文件属性的方法(可读性,可编写性等等)。
每个程序都会有它自己的沙盒,通过它你可以阅读/编写文件。写入沙盒的文件在程序的进程中将会保持稳定,即便实在程序更新的情况下。
如下所示,你可以在沙盒中定位文件目录:
    1.    //对于错误信息 
    2.    NSError *error; 
    3.    // 创建文件管理器 
    4.    NSFileManager *fileMgr = [NSFileManagerdefaultManager]; 
    5.    //指向文件目录 
    6.    NSString *documentsDirectory= [NSHomeDirectory()  
    7.    stringByAppendingPathComponent:@"Documents"]; 
    8.    
    9.    //创建一个目录 
    10.    [[NSFileManager defaultManager]   createDirectoryAtPath: [NSString stringWithFormat:@"%@/myFolder", NSHomeDirectory()] attributes:nil];
创建一个文件
现在我们已经有了文件目录,我们就能使用这个路径在沙盒中创建一个新文件并编写一段代码:
    1.    // File we want to create in the documents directory我们想要创建的文件将会出现在文件目录中 
    2.    // Result is: /Documents/file1.txt结果为:/Documents/file1.txt 
    3.    NSString *filePath= [documentsDirectory 
    4.    stringByAppendingPathComponent:@"file1.txt"]; 
    5.    //需要写入的字符串 
    6.    NSString *str= @"iPhoneDeveloper Tips\nhttp://iPhoneDevelopTips,com"; 
    7.    //写入文件 
    8.    [str writeToFile:filePath atomically:YES  
    9.    encoding:NSUTF8StringEncoding error:&error]; 
    10.    //显示文件目录的内容 
    11.    NSLog(@"Documentsdirectory: %@", 
    12.    [fileMgr contentsOfDirectoryAtPath:documentsDirectoryerror:&error]);
我们为想要创建的文件构建一条路径(file1.txt),初始化一个字符串来写入文件,并列出目录。最后一行显示了在我们创建文件之后出现在文件目录下的一个目录列表:
对一个文件重命名
想要重命名一个文件,我们需要把文件移到一个新的路径下。下面的代码创建了我们所期望的目标文件的路径,然后请求移动文件以及在移动之后显示文件目录。
    1.    //通过移动该文件对文件重命名 
    2.    NSString *filePath2= [documentsDirectory 
    3.    stringByAppendingPathComponent:@"file2.txt"]; 
    4.    //判断是否移动 
    5.    if ([fileMgr moveItemAtPath:filePath toPath:filePath2 error:&error] != YES) 
    6.    NSLog(@"Unable to move file: %@", [error localizedDescription]); 
    7.    //显示文件目录的内容 
    8.    NSLog(@"Documentsdirectory: %@",  
    9.    [fileMgr contentsOfDirectoryAtPath:documentsDirectoryerror:&error]);
在移动了文件之后,输出结果应该如下图所示:
删除一个文件
为了使这个技巧完整,让我们再一起看下如何删除一个文件:
    1.    //在filePath2中判断是否删除这个文件 
    2.    if ([fileMgr removeItemAtPath:filePath2 error:&error] != YES) 
    3.    NSLog(@"Unable to delete file: %@", [error localizedDescription]); 
    4.    //显示文件目录的内容 
    5.    NSLog(@"Documentsdirectory: %@", 
    6.    [fileMgr contentsOfDirectoryAtPath:documentsDirectoryerror:&error]);
一旦文件被删除了,正如你所预料的那样,文件目录就会被自动清空:
这些示例能教你的,仅仅只是文件处理上的一些皮毛。想要获得更全面、详细的讲解,你就需要掌握NSFileManager文件的知识。
在开发iPhone程序时,有时候要对文件进行一些操作。而获取某一个目录中的所有文件列表,是基本操作之一。通过下面这段代码,就可以获取一个目录内的文件及文件夹列表。
    1.    NSFileManager *fileManager = [NSFileManager defaultManager]; 
    2.    //在这里获取应用程序Documents文件夹里的文件及文件夹列表 
    3.            NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    4.            NSString *documentDir = [documentPaths objectAtIndex:0]; 
    5.            NSError *error = nil; 
    6.            NSArray *fileList = [[NSArray alloc] init]; 
    7.    //fileList便是包含有该文件夹下所有文件的文件名及文件夹名的数组 
    8.            fileList = [fileManager contentsOfDirectoryAtPath:documentDir error:&error];
以下这段代码则可以列出给定一个文件夹里的所有子文件夹名
    1.    NSMutableArray *dirArray = [[NSMutableArray alloc] init]; 
    2.            BOOL isDir = NO; 
    3.    //在上面那段程序中获得的fileList中列出文件夹名 
    4.            for (NSString *file in fileList) { 
    5.                    NSString *path = [documentDir stringByAppendingPathComponent:file]; 
    6.                    [fileManager fileExistsAtPath:path isDirectory:(&isDir)]; 
    7.                    if (isDir) { 
    8.                            [dirArray addObject:file]; 
    9.                    } 
    10.                    isDir = NO; 
    11.            } 
    12.            NSLog(@"Every Thing in the dir:%@",fileList); 
    13.            NSLog(@"All folders:%@",dirArray);
分享到:
评论

相关推荐

    iOS开发_iphone开发_文件系统NSFileManager_如何创建、重命名和删除文件

    iOS开发_iphone开发_文件系统NSFileManager_如何创建、重命名和删除文件

    iPhone SDK开发 NSFileManager详解

    `NSFileManager` 是 Objective-C 中用于处理文件系统操作的核心类之一。它提供了多种方法来创建 `NSFileManager` 的实例。 - **`-init`**:初始化方法并不推荐用于创建 `NSFileManager` 的实例,因为 `...

    iphone开发之NSFileManager_Class.pdf

    在iOS应用开发中,`NSFileManager` 是一个至关重要的类,它提供了对设备上文件系统的基本操作。这份文档 `iphone开发之NSFileManager_Class.pdf` 应该详细介绍了如何使用 `NSFileManager` 进行数据管理,特别是文件...

    iphone开发之NSFileManager_Class[定义].pdf

    NSFileManager是Objective-C中的一个核心类,它负责文件系统的基本操作,如读取、写入、移动、删除文件等。本篇将深入解析NSFileManager的使用和功能。 一、NSFileManager简介 NSFileManager是Foundation框架的一...

    ios-使用NSFileManager管理文件系统.zip

    demo 地址 github.com/pro648/BasicDemos-iOS/tree/master/FileManager 详细介绍:github.com/pro648/tips/wiki/使用NSFileManager管理文件系统 - Bundle Container目录包含应用程序包。 - Data Container目录...

    IOS应用源码——NSFileManager_DirectoryLocations.rar

    在iOS应用开发中,`NSFileManager` 是一个至关重要的类,它提供了与文件系统交互的能力。这个源码示例——"IOS应用源码——NSFileManager_DirectoryLocations.rar" 很可能包含了如何使用`NSFileManager`查找和操作...

    iphone NSFileManager Class

    `NSFileManager`是Foundation框架中的一个核心类,用于提供文件系统的访问和管理功能。它不仅支持基本的文件和目录的操作,还提供了一些高级功能,如资源管理、符号链接处理等。在iOS开发中,掌握`NSFileManager`类...

    详解iOS学习笔记(十七)——文件操作(NSFileManager)

    NSFileManager是Objective-C中用于文件操作的主要类,它提供了丰富的接口来管理文件系统中的文件和目录。在本文中,我们将深入探讨iOS的沙盒机制以及如何使用NSFileManager进行文件操作。 首先,了解iOS的沙盒机制...

    支持NSFileManager查看本地文件功能

    标题提到的"支持NSFileManager查看本地文件功能",意味着这个源码实例将展示如何利用苹果的Foundation框架中的`NSFileManager`类来浏览和操作iOS设备上的文件系统。`NSFileManager`是iOS中用于处理文件和目录的主要...

    Iphone有关文件编程资料合辑

    iOS设备采用的是基于SQLite的文件系统,应用程序都有自己的沙盒环境,这意味着每个应用都有独立的文件存储空间,不能直接访问其他应用的数据。在沙盒内,文件通常被分为几个子目录:Documents、Library、tmp和...

    iphone实现文件的读写操作

    通过Xcode环境下的Objective-C编程语言,我们将了解如何利用`NSFileManager`类来处理文件系统中的读取与写入任务。这包括创建、读取、删除文件等基本操作。 #### 一、文件写入操作 在iOS开发中,文件写入通常涉及...

    swift-针对NSFileManager的文件管理类工具提供了文件操作的便携式封装

    在Swift编程语言中,`NSFileManager`是苹果提供的一个核心框架,用于处理文件系统操作,如创建、删除、移动和复制文件或目录。然而,直接使用`NSFileManager`的API可能会涉及较多的代码,不够简洁。为了提高开发效率...

    基于Android的文件管理系统源代码

    在iPhone上运行时,需要解决的主要问题是UI适配和文件系统的访问权限。Android和iOS的界面设计语言有所不同,因此源代码中可能包含了针对不同平台的布局文件。同时,iOS有严格的沙盒机制,应用程序只能访问自己的...

    FCFileManager, 在NSFileManager上简化文件管理,iOS文件管理器.zip

    FCFileManager, 在NSFileManager上简化文件管理,iOS文件管理器 FCFileManager 在NSFileManager上为文件管理器提供英镑的。 为执行最常见的操作提供了许多 static 方法,只需几行代码。 默认情况下,它在文档目录中...

    SwiftFilePath, 简单而强大的NSFileManager封装.zip

    SwiftFilePath, 简单而强大的NSFileManager封装 SwiftFilePath 简单而强大的NSFileManager封装。用法创建实例你可以从字符串创建 Path 对象。let fooDir = Path("/path/to/fooDir")//

    使用NSCoding和NSFileManager保存数据demo

    它是iOS和macOS中的文件系统接口,用于执行基本的文件操作,如创建、删除、复制和移动文件。在本示例中,你可能会使用`NSFileManager`的`createFileAtPath:contents:attributes:`方法来创建一个归档文件,其中包含了...

    NSFileManager_Swift:该示例概述了如何使用NSFileManger保存文本文件

    在Swift编程语言中,`NSFileManager` 是一个关键的类,用于处理文件系统操作,如创建、删除、复制、移动和检查文件或目录。在这个示例中,我们将深入探讨如何利用`NSFileManager`来保存文本文件。理解并熟练掌握这个...

    ios-利用NSFileManager给.m增加内容,同时可以修改文件夹名字.zip

    1.利用NSFileManager的最进本的用法操作另外一个项目,同时修改所有.m文件的内容 2.同时修改多个文件夹的名称 github 地址 https://github.com/elite-kai/ELFileManager

Global site tag (gtag.js) - Google Analytics