[关闭]
@fiy-fish 2015-07-19T12:23:52.000000Z 字数 4068 阅读 1471

day08-01-文件

Objective-c


  1. // main.m
  2. // day08-01-文件
  3. //
  4. // Created by Aaron on 15/7/10.
  5. // Copyright (c) 2015年 Aaron. All rights reserved.
  6. //
  7. #import <Foundation/Foundation.h>
  8. //对文件的操作
  9. //NSFileManager
  10. //对文件内容的操作
  11. //NSFileHandle
  12. #if 0
  13. int main(int argc, const char * argv[]) {
  14. @autoreleasepool {
  15. NSFileManager *manager = [NSFileManager defaultManager];
  16. //查看目录下的内容
  17. /*
  18. - (NSArray *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error NS_AVAILABLE(10_5, 2_0);
  19. 返回值是返回目录下所有的文件的相对路径
  20. 浅遍历----只遍历当前一层目录
  21. 如果路径错了,会返回nil
  22. */
  23. NSError __autoreleasing *e = nil;
  24. NSArray *contens = [manager contentsOfDirectoryAtPath:@"/users/Aaron/desktop/file" error:&e];
  25. NSLog(@"%@",contens);
  26. //深遍历----不管层次有多深,全部遍历出来
  27. contens = [manager subpathsOfDirectoryAtPath:@"/users/Aaron/desktop/file" error:&e];
  28. NSLog(@"%@",contens);
  29. //在桌面上创建一个目录,里面放一些文件,将所有的txt文档都遍历出来
  30. NSMutableArray *txts = [NSMutableArray array];
  31. for(NSString *obj in contens)
  32. {
  33. if([obj hasSuffix:@".txt"])
  34. {
  35. [txts addObject:obj];
  36. }
  37. }
  38. NSLog(@"%@",txts);
  39. }
  40. return 0;
  41. }
  42. #endif
  43. //复制 粘贴 移动 删除 创建
  44. #if 0
  45. int main()
  46. {
  47. //创建目录
  48. NSFileManager *manager = [NSFileManager defaultManager];
  49. NSError __autoreleasing *err = nil;
  50. /*
  51. - (BOOL)createDirectoryAtPath:(NSString *)path withIntermediateDirectories:(BOOL)createIntermediates attributes:(NSDictionary *)attributes error:(NSError **)error NS_AVAILABLE(10_5, 2_0);
  52. 返回值表示创建成功或者失败
  53. 注意: 路径需要包含新的文件的名字
  54. 参数一: 路径
  55. 参数二: 是否需要自动创建中间层目录
  56. 参数三: 文件的属性
  57. 参数四: 错误信息
  58. */
  59. BOOL rec = [manager createDirectoryAtPath:@"/users/Aaron/desktop/newFile/test1/test2" withIntermediateDirectories:YES attributes:nil error:&err];
  60. // if(rec)
  61. // {
  62. // NSLog(@"创建目录成功");
  63. // }
  64. // else
  65. // {
  66. // NSLog(@"创建目录失败 error: %@",err);
  67. // }
  68. //创建文件
  69. //- (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr;
  70. //参数一: 路径 (包含文件名)
  71. //注意: 创建目录,不允许同名,创建文件,同名则会覆盖掉原来的文件
  72. //参数二: 文件的内容
  73. //参数三:文件属性
  74. //NSData 二进制的数据流的类
  75. NSString *str = @"xiaoxin";
  76. NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
  77. rec = [manager createFileAtPath:@"/users/Aaron/desktop/newFile/file1.txt" contents:data attributes:nil];
  78. if(rec)
  79. {
  80. NSLog(@"创建文件成功");
  81. }
  82. else
  83. {
  84. NSLog(@"创建文件失败");
  85. }
  86. }
  87. #endif
  88. /*
  89. 练习:扩展NSFileManager
  90. 实现一个方法,提供一共路径,创建一个未命名的文件
  91. 实现一个方法,提供一个路径,创建一个未命名的文件夹
  92. */
  93. #if 0
  94. int main()
  95. {
  96. //检测文件是否存在
  97. NSFileManager *manager = [NSFileManager defaultManager];
  98. //检测指定路径的文件是否存在
  99. BOOL rec = [manager fileExistsAtPath:@"/users/Aaron/desktop/newFile"];
  100. NSLog(@"%@",rec?@"存在":@"不存在");
  101. BOOL isDir = NO;
  102. rec = [manager fileExistsAtPath:@"/users/Aaron/desktop/newFile" isDirectory:&isDir];
  103. NSLog(@"%@",isDir?@"是目录":@"不是目录");
  104. }
  105. #endif
  106. #if 0
  107. int main()
  108. {
  109. //文件属性
  110. NSFileManager *manager = [NSFileManager defaultManager];
  111. //获取文件属性
  112. /*
  113. - (NSDictionary *)attributesOfItemAtPath:(NSString *)path error:(NSError **)error NS_AVAILABLE(10_5, 2_0);
  114. */
  115. NSDictionary *dic = [manager attributesOfItemAtPath:@"/users/Aaron/desktop/newFile/file1.txt" error:nil];
  116. NSLog(@"%@",dic);
  117. //NSFilePosixPermissions 文件可移植权限
  118. NSNumber *num = dic[NSFilePosixPermissions];
  119. NSLog(@"%@",num);
  120. int temp = [num intValue];
  121. temp = 0744;
  122. NSLog(@"%d",temp);
  123. NSMutableDictionary *dic1 = [NSMutableDictionary dictionaryWithDictionary:dic];
  124. [dic1 setObject:@(temp) forKey:NSFilePosixPermissions];
  125. [manager setAttributes:dic1 ofItemAtPath:@"/users/Aaron/desktop/newFile/file1.txt" error:nil];
  126. }
  127. #endif
  128. //复制 移动 删除
  129. int main()
  130. {
  131. NSFileManager *manager = [NSFileManager defaultManager];
  132. NSError __autoreleasing *err = nil;
  133. //注意:路径都要包含新的文件名
  134. //这个方法即可以拷贝文件,也可以拷贝目录,拷贝目录是深遍历
  135. [manager copyItemAtPath:@"/users/Aaron/desktop/newFile" toPath:@"/users/Aaron/desktop/file/file1111" error:&err];
  136. NSLog(@"%@",err);
  137. //移动文件或者文件夹到指定路径
  138. [manager moveItemAtPath:@"/users/Aaron/desktop/file" toPath:@"/users/Aaron/desktop/newFile/ffff" error:nil];
  139. //删除文件或者文件夹
  140. //注意:路径不要写错,写错了就找不回来了
  141. [manager removeItemAtPath:@"/users/Aaron/desktop/newFile" error:nil];
  142. }

  1. /*
  2. 练习:扩展NSFileManager
  3. 实现一个方法,提供一共路径,创建一个未命名的文件
  4. 实现一个方法,提供一个路径,创建一个未命名的文件夹
  5. */
  6. #import <Foundation/Foundation.h>
  7. @interface NSFileManager (MyManager)
  8. - (BOOL)myCreateFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr;
  9. @end

  1. /*
  2. 练习:扩展NSFileManager
  3. 实现一个方法,提供一共路径,创建一个未命名的文件
  4. 实现一个方法,提供一个路径,创建一个未命名的文件夹
  5. */
  6. #import "NSFileManager+MyManager.h"
  7. @implementation NSFileManager (MyManager)
  8. -(BOOL)myCreateFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr
  9. {
  10. NSString *newPtah = [NSString stringWithFormat:@"%@/未命名文件",path];
  11. return [self createFileAtPath:newPtah contents:data attributes:attr];
  12. }
  13. @end
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注