获取应用程序的主目录
应用程序的主目录(包含:Documents 、Library、SystemData、tmp)
NSHomeDirectory()
获取Documents 目录
OC版本
NSString * documents = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
Swift版本
let document = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first
获取 tmp路径
NSTemporaryDirectory()
获取Library路径
OC版本
NSString * library = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES).firstObject;
//遍历library下的文件夹
NSArray * totalLibrary = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:library error:NULL];
NSLog(@"%@", totalLibrary);
Swift版本
获取Library路径
guard let library = NSSearchPathForDirectoriesInDomains(.libraryDirectory, .userDomainMask, true).first else {return}
guard let totalLibrarys = try? FileManager.default.contentsOfDirectory(atPath: library) else {return}
for str in totalLibrarys {
print(str)
}
//打印结果
Saved Application State
Preferences
SplashBoard
Caches
获取缓存Caches路径. Library下的路径
NSString * cache = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
NSFileManager
什么是NSFileManager
顾名思义, NSFileManager是用来管理文件系统的
它可以用来进行常见的文件\文件夹操作
NSFileManager使用了单例模式
使用defaultManager方法可以获得那个单例对象
[NSFileManager defaultManager]
//文件的常见判断。
//path这个文件\文件夹是否存在。
- (BOOL)fileExistsAtPath:(NSString *)path;
//path 这个文件\文件夹是否可读
- (BOOL)isReadableFileAtPath:(NSString *)path;
//path 这个文件\文件夹是否可写
- (BOOL)isWritableFileAtPath:(NSString *)path;
- (BOOL)isExecutableFileAtPath:(NSString *)path;
//path这个文件\文件夹是否可删除。
- (BOOL)isDeletableFileAtPath:(NSString *)path;
文件的访问
//获取path这个文件\文件夹的属性。
- (NSDictionary *)attributesOfItemAtPath:(NSString *)path error:(NSError **)error
- (NSArray *)subpathsOfDirectoryAtPath:(NSString *)path error:(NSError **)error;
获得path的所有子路径
- (NSArray *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error;
获得path的当前子路径
- (NSData *)contentsAtPath:(NSString *)path;
获得文件内容
文件操作
- (BOOL)copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error;
拷贝
- (BOOL)moveItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error;
移动(剪切)
- (BOOL)removeItemAtPath:(NSString *)path error:(NSError **)error;
删除
- (BOOL)createDirectoryAtPath:(NSString *)path withIntermediateDirectories:(BOOL)createIntermediates attributes:(NSDictionary *)attributes error:(NSError **)error;
创建文件夹(createIntermediates为YES代表自动创建中间的文件夹)
- (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr;
创建文件