NSFileManeger
#define PATH @"/Users/wenhua/testdir"
// 删除, 复制 剪切 这些行为都是管理文件的行为
//创建文件
void createFile(void)
{
//文件管理器类, 一个app中只需要一个这样的管理器对象,即单例
NSFileManager *fm =[NSFileManager defaultManager];
//创建文件
// fm createFileAtPath:<#(NSString *)#> contents:<#(NSData *)#> attributes:<#(NSDictionary *)#>
[fm createFileAtPath:[NSString stringWithFormat:@"%@%@",PATH,@"/first.txt"] contents:[@"abcde" dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];
}
//创建文件夹
void createDir(void)
{
//文件管理器类, 一个app中只需要一个这样的管理器对象,即单例
NSFileManager *fm =[NSFileManager defaultManager];
//创建文件夹
// fm createDirectoryAtPath:<#(NSString *)#> withIntermediateDirectories:<#(BOOL)#> attributes:<#(NSDictionary *)#> error:<#(NSError *__autoreleasing *)#>
NSError *error=nil;
[fm createDirectoryAtPath:[NSString stringWithFormat:@"%@%@",PATH,@"/middle/newdir"] withIntermediateDirectories:YES attributes:nil error:&error];
if (error!=nil) {
NSLog(@"%@",error);
return;
}
}
//删除文件
void rmFile(void)
{
//文件管理器类, 一个app中只需要一个这样的管理器对象,即单例
NSFileManager *fm =[NSFileManager defaultManager];
//删除
// fm removeItemAtPath:<#(NSString *)#> error:<#(NSError *__autoreleasing *)#>
NSError *error=nil;
[fm removeItemAtPath:[NSString stringWithFormat:@"%@%@",PATH,@"/first.txt"] error:&error];
if (error) {
NSLog(@"%@",error);
}
}
//复制文件
void cpFile(void)
{
//文件管理器类, 一个app中只需要一个这样的管理器对象,即单例
NSFileManager *fm =[NSFileManager defaultManager];
//复制
// fm copyItemAtPath:<#(NSString *)#> toPath:<#(NSString *)#> error:<#(NSError *__autoreleasing *)#>
NSError* error=nil;
//复制文件
[fm copyItemAtPath:@"/Users/xiaozai/Desktop/test.plist" toPath:[NSString stringWithFormat:@"%@%@",PATH,@"/test.plist"] error:&error];
if (error) {
NSLog(@"%@",error);
}
//复制文件夹
[fm copyItemAtPath:@"/Users/xiaozai/Desktop/deskdir" toPath:[NSString stringWithFormat:@"%@%@",PATH,@"/deskdir"] error:&error];
if (error) {
NSLog(@"%@",error);
}
}
//剪切文件
void mvFile(void)
{
//剪切,移动
// fm moveItemAtPath:<#(NSString *)#> toPath:<#(NSString *)#> error:<#(NSError *__autoreleasing *)#>
//文件管理器类, 一个app中只需要一个这样的管理器对象,即单例
NSFileManager *fm =[NSFileManager defaultManager];
NSError *error=nil;
[fm moveItemAtPath:[NSString stringWithFormat:@"%@%@",PATH,@"/test.plist"] toPath:@"/Users/xiaozai/Desktop/test.plist" error:&error];
if (error) {
NSLog(@"%@",error);
}
[fm moveItemAtPath:[NSString stringWithFormat:@"%@%@",PATH,@"/deskdir"] toPath:@"/Users/xiaozai/Desktop/deskdir" error:&error];
if (error) {
NSLog(@"%@",error);
}
}
// 文件是否存在于某个路径
bool isFileExistAtPath()
{
NSString *path = [NSString stringWithFormat:@"%@/file.zip", NSHomeDirectory()];
NSFileManager *fm = [ NSFileManager defaultManager];
return [fm fileExistsAtPath:path];
}
// 若创建未出错,那一定就会返回TRUE了
//遍历某个目录
void travelListDir(void)
{
NSFileManager *fm = [ NSFileManager defaultManager];
NSError* error=nil;
// 浅层遍历目录
NSArray* retArray =[fm contentsOfDirectoryAtPath:PATH error:&error];
if (error) {
NSLog(@"%@",error);
}
NSLog(@"retArray:%@",retArray);
// 深层遍历目录
NSArray * array2= [fm subpathsOfDirectoryAtPath:@"/Users/wenhua/work/oc/19day" error:&error];
NSEnumerator * enumerator = [ array2 objectEnumerator];
id obj;
while (obj=[enumerator nextObject]) {
NSLog(@"%@",obj);
}
}
void otherMethods(void)
{
NSFileManager *fm = [ NSFileManager defaultManager];
//获取app的当前工作路径
NSLog(@"本程序的当前工作路径为:%@",[fm currentDirectoryPath]);
//传一个文件(夹)的绝对路径,得到一个文件(夹)名
NSLog(@"%@",[fm displayNameAtPath:PATH]);
}
NSFileManeger的更多相关文章
随机推荐
- SQL Server代理(5/12):理解SQL代理错误日志
SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 如我们在这个系列的前几篇文章所见,SQL ...
- LINQ多个操作嵌套实现
获取集合,需要使用多个条件Where,排序OrderBy,查询Select一起. 先来分步实现: source code: string[] stringArray = { "hgdgh&q ...
- ASP.NET MVC 请求流程:Controller
1.请求进入时,.NET Framework就找出所有的HttpModule,以此调用它们的Init方法,如下图所示,我们重点关注"UrlRoutingModule-4.0"的Ht ...
- C# IDisposable接口
public class MyClass : IDisposable { public int a; public MyClass() { //构造 } public void Dispose() { ...
- SQLServer中游标是如何处理数据的?
游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次以行或者多行前进或向后浏览数据的能力.我们可以把游标当作一个指针,它可以指定结果中的任何位置,然后允许 ...
- html5学习笔记5--API Range对象(二)
Range对象之cloneRange和cloneContents 代码效果如下 首次点击“选择内容“按钮提示如下 接着会显示 最后显示 以下为整个代码 <!DOCTYPE html> &l ...
- RPM Version Comparison
https://fedoraproject.org/wiki/Archive:Tools/RPM/VersionComparison?rd=Tools/RPM/VersionComparison ht ...
- 说说web 2.0生态圈的那些事
先来说一道面试题吧,“说一下,web 2.0 和web 1.0的区别?” 官方的解释是这样的: Web1.0 的主要特点在于用户通过浏览器获取信息,Web2.0 则更注重用户的交互作用,用户既是网站内 ...
- [javaSE] 反射-Class类的使用
JAVA-Reflect 专题 ①Class类的使用 ②方法的反射 ③成员变量的反射 ④构造函数的反射 ⑤java类的加载机制 Ⅰ在面向对象的世界里,万事万物皆为对象 类是对象,类是java.lang ...
- Verilog学习笔记认识提升篇(一)...............时序的基本概念(待补充)
建立和保持时间: 建立时间(Tsu)是指在时钟上升沿到来之前数据必须保持稳定的时间,保持时间(Th)是指在时钟上升沿到来以后数据必须保持稳定的时间.一个数据需要在时钟的上升沿被锁存,那么这个数据就必须 ...