/*
* @brief沙盒下的各种文件
*/
- (void)getPaths
{
/**
* @brief获取沙盒的路径
*/
NSString * HomeDirectory = NSHomeDirectory();
NSLog(@"%@",HomeDirectory);
/*返回值是数组的原因:该方法一开始是用于mac-os开发,对PC端来说,可以有多个用户,所以获取时,会获取到所有用户的文件夹路径,但是该方法用于ios开发时,因为移动端只用一个用户,所以获取到的路径也只有一个。*/
/**
* @brief获取Documents目录路径 苹果建议将程序创建产生的文件以及应用浏览产生的文件数据保存在该目录下 iTunes备份和恢复的时候会包括此目录
*/
NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString * documentDirectory = [pathsfirstObject];
NSLog(@"%@",documentDirectory);
/**
* @brief获取Library目录路径 保存程序的默认设置或其他状态信息. Library下的Preferences:存储偏好设置。比如:应用是否是第一次启动,保存用户名和密码等。
*/
NSArray * paths_1 = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString * libraryDirectory = [paths_1firstObject];
NSLog(@"%@",libraryDirectory);
/**
* @brief获取Cache目录路径(Library下的文件) 存放缓存文件,保存应用的持久化数据,用于应用的升级或者应用关闭后的数据保存,不会被itunes同步。
*/
NSArray * path_2 = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString * cachePath = [path_2firstObject];
NSLog(@"%@",cachePath);
/**
* @brief获取tmp目录路径 提供一个临时创建的文件,不需要持久化,在应用关闭后,该目录下的数据将删除,页可能系统在程序不运行的时候清楚。
*/
NSString * tmpDirectory = NSTemporaryDirectory();
NSLog(@"%@",tmpDirectory);
}
/*
* @brief文件的操作
*/
- (void)fileManager
{
/**
* @brief创建
*/
[selfcreateFile];
/**
* @brief写入
*/
[selfWriteToFile];
/**
* @brief读取
*/
[selfreadFile];
/**
* @brief删除
*/
[selfdeleteFile];
}
- (void)createFile
{
NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString * documentsDirectory = [pathsfirstObject];
NSFileManager * fileManager = [NSFileManagerdefaultManager];
NSString * testDirectory = [documentsDirectorystringByAppendingPathComponent:@"MyTest"];
/**
* @brief创建文件夹
*/
BOOLres = [fileManagercreateDirectoryAtPath:testDirectorywithIntermediateDirectories:YESattributes:nilerror:nil];
if (res) {
/**
* @brief创建文件
*/
NSString * testPath = [testDirectorystringByAppendingPathComponent:@"test.text"];
NSLog(@"%@",testPath);
NSString * content = @"我的测试数据";
/**
*
* @brief写入数据
*/
BOOLres = [contentwriteToFile:testPathatomically:YESencoding:NSUTF8StringEncodingerror:nil];
if (res) {
NSLog(@"写入数据成功");
}
}
}
- (void)WriteToFile
{
NSFileManager * defaultManager = [NSFileManagerdefaultManager];
NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString * documentsDirectory = [pathsfirstObject];
NSString * testDirectory = [documentsDirectorystringByAppendingPathComponent:@"MyTest"];
NSString * testPath = [testDirectorystringByAppendingPathComponent:@"test.text"];
NSString * content = @"我的第二次测试";
/**
* @brief文件的可写性(isWritableFileAtPath)
*/
if ([defaultManagerisWritableFileAtPath:testPath]) {
/**
* @brief写入数据
*/
if ([contentwriteToFile:testPathatomically:NOencoding:NSUTF8StringEncodingerror:nil]) {
NSLog(@"写入成功");
}
}
}
- (void)readFile
{
NSFileManager * defaultManager = [NSFileManagerdefaultManager];
NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString * documentsDirectory = [pathsfirstObject];
NSString * testDirectory = [documentsDirectorystringByAppendingPathComponent:@"MyTest"];
NSString * testPath = [testDirectorystringByAppendingPathComponent:@"test.text"];
/**
* @brief查询文件的可读性
*/
if ([defaultManagerisReadableFileAtPath:testPath]) {
NSString * text = [NSStringstringWithContentsOfFile:testPathencoding:NSUTF8StringEncodingerror:nil];
NSLog(@"%@",text);
}
}
- (void)deleteFile
{
NSFileManager * defaultManager = [NSFileManagerdefaultManager];
NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString * documentsDirectory = [pathsfirstObject];
NSString * testDirectory = [documentsDirectorystringByAppendingPathComponent:@"MyTest"];
NSLog(@"%@",testDirectory);
/**
* @brief查询文件的可执行性(isExecutableFileAtPath)
*/
NSLog(@"%@",[defaultManagerisExecutableFileAtPath:testDirectory]?@"YES":@"NO");
/**
* @brief文件的可删除性(isDeletableFileAtPath)
*/
if ([defaultManagerisDeletableFileAtPath:testDirectory]) {
/**
* @brief删除指定路径的文件
*/
[defaultManagerremoveItemAtPath:testDirectoryerror:nil];
}
NSLog(@"%@",[defaultManagerisExecutableFileAtPath:testDirectory]?@"YES":@"NO");
}