CWFileManager.h 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. //
  2. // CWUploadTask.m
  3. // uploadFileDemo
  4. //
  5. // Created by hyjet on 2018/3/9.
  6. // Copyright © 2018年 uploadFileDemo. All rights reserved.
  7. //
  8. #import <UIKit/UIKit.h>
  9. //#define uploadPlist @"uploadPlist/upload.plist"
  10. @interface CWFileManager : NSObject
  11. #pragma mark - 沙盒目录相关
  12. // 沙盒的主目录路径
  13. + (NSString *)homeDir;
  14. // 沙盒中Documents的目录路径
  15. + (NSString *)documentsDir;
  16. // 沙盒中Library的目录路径
  17. + (NSString *)libraryDir;
  18. // 沙盒中Libarary/Preferences的目录路径
  19. + (NSString *)preferencesDir;
  20. // 沙盒中Library/Caches的目录路径
  21. + (NSString *)cachesDir;
  22. // 沙盒中tmp的目录路径
  23. + (NSString *)tmpDir;
  24. #pragma mark - 遍历文件夹
  25. /**
  26. 文件遍历
  27. @param path 目录的绝对路径
  28. @param deep 是否深遍历 (1. 浅遍历:返回当前目录下的所有文件和文件夹;
  29. 2. 深遍历:返回当前目录下及子目录下的所有文件和文件夹)
  30. @return 遍历结果数组
  31. */
  32. + (NSArray *)listFilesInDirectoryAtPath:(NSString *)path deep:(BOOL)deep;
  33. // 遍历沙盒主目录
  34. + (NSArray *)listFilesInHomeDirectoryByDeep:(BOOL)deep;
  35. // 遍历Documents目录
  36. + (NSArray *)listFilesInDocumentDirectoryByDeep:(BOOL)deep;
  37. // 遍历Library目录
  38. + (NSArray *)listFilesInLibraryDirectoryByDeep:(BOOL)deep;
  39. // 遍历Caches目录
  40. + (NSArray *)listFilesInCachesDirectoryByDeep:(BOOL)deep;
  41. // 遍历tmp目录
  42. + (NSArray *)listFilesInTmpDirectoryByDeep:(BOOL)deep;
  43. //遍历指定文件夹目录
  44. + (NSArray *)listFilesInCoustomDirectoryByDeep:(NSString*)path deepBool:(BOOL)deep;
  45. #pragma mark - 获取文件属性
  46. // 根据key获取文件某个属性
  47. + (id)attributeOfItemAtPath:(NSString *)path forKey:(NSString *)key;
  48. // 根据key获取文件某个属性(错误信息error)
  49. + (id)attributeOfItemAtPath:(NSString *)path forKey:(NSString *)key error:(NSError **)error;
  50. // 获取文件属性集合
  51. + (NSDictionary *)attributesOfItemAtPath:(NSString *)path;
  52. // 获取文件属性集合(错误信息error)
  53. + (NSDictionary *)attributesOfItemAtPath:(NSString *)path error:(NSError **)error;
  54. #pragma mark - 创建文件(夹)
  55. // 创建文件夹
  56. + (BOOL)createDirectoryAtPath:(NSString *)path;
  57. // 创建文件夹(错误信息error)
  58. + (BOOL)createDirectoryAtPath:(NSString *)path error:(NSError **)error;
  59. // 创建文件
  60. + (BOOL)createFileAtPath:(NSString *)path;
  61. // 创建文件(错误信息error)
  62. + (BOOL)createFileAtPath:(NSString *)path error:(NSError **)error;
  63. // 创建文件,是否覆盖
  64. + (BOOL)createFileAtPath:(NSString *)path overwrite:(BOOL)overwrite;
  65. // 创建文件,是否覆盖(错误信息error)
  66. + (BOOL)createFileAtPath:(NSString *)path overwrite:(BOOL)overwrite error:(NSError **)error;
  67. // 创建文件,文件内容
  68. + (BOOL)createFileAtPath:(NSString *)path content:(NSObject *)content;
  69. // 创建文件,文件内容(错误信息error)
  70. + (BOOL)createFileAtPath:(NSString *)path content:(NSObject *)content error:(NSError **)error;
  71. // 创建文件,文件内容,是否覆盖
  72. + (BOOL)createFileAtPath:(NSString *)path content:(NSObject *)content overwrite:(BOOL)overwrite;
  73. // 创建文件,文件内容,是否覆盖(错误信息error)
  74. + (BOOL)createFileAtPath:(NSString *)path content:(NSObject *)content overwrite:(BOOL)overwrite error:(NSError **)error;
  75. // 获取创建文件时间
  76. + (NSDate *)creationDateOfItemAtPath:(NSString *)path;
  77. // 获取创建文件时间(错误信息error)
  78. + (NSDate *)creationDateOfItemAtPath:(NSString *)path error:(NSError **)error;
  79. // 获取文件修改时间
  80. + (NSDate *)modificationDateOfItemAtPath:(NSString *)path;
  81. // 获取文件修改时间(错误信息error)
  82. + (NSDate *)modificationDateOfItemAtPath:(NSString *)path error:(NSError **)error;
  83. #pragma mark - 删除文件(夹)
  84. // 删除文件
  85. + (BOOL)removeItemAtPath:(NSString *)path;
  86. // 删除文件(错误信息error)
  87. + (BOOL)removeItemAtPath:(NSString *)path error:(NSError **)error;
  88. // 清空Caches文件夹
  89. + (BOOL)clearCachesDirectory;
  90. // 清空tmp文件夹
  91. + (BOOL)clearTmpDirectory;
  92. #pragma mark - 复制文件(夹)
  93. // 复制文件
  94. + (BOOL)copyItemAtPath:(NSString *)path toPath:(NSString *)toPath;
  95. // 复制文件(错误信息error)
  96. + (BOOL)copyItemAtPath:(NSString *)path toPath:(NSString *)toPath error:(NSError **)error;
  97. // 复制文件,是否覆盖
  98. + (BOOL)copyItemAtPath:(NSString *)path toPath:(NSString *)toPath overwrite:(BOOL)overwrite;
  99. // 复制文件,是否覆盖(错误信息error)
  100. + (BOOL)copyItemAtPath:(NSString *)path toPath:(NSString *)toPath overwrite:(BOOL)overwrite error:(NSError **)error;
  101. #pragma mark - 移动文件(夹)
  102. // 移动文件
  103. + (BOOL)moveItemAtPath:(NSString *)path toPath:(NSString *)toPath;
  104. // 移动文件(错误信息error)
  105. + (BOOL)moveItemAtPath:(NSString *)path toPath:(NSString *)toPath error:(NSError **)error;
  106. // 移动文件,是否覆盖
  107. + (BOOL)moveItemAtPath:(NSString *)path toPath:(NSString *)toPath overwrite:(BOOL)overwrite;
  108. // 移动文件,是否覆盖(错误信息error)
  109. + (BOOL)moveItemAtPath:(NSString *)path toPath:(NSString *)toPath overwrite:(BOOL)overwrite error:(NSError **)error;
  110. #pragma mark - 根据URL获取文件名
  111. // 根据文件路径获取文件名称,是否需要后缀
  112. + (NSString *)fileNameAtPath:(NSString *)path suffix:(BOOL)suffix;
  113. // 获取文件所在的文件夹路径
  114. + (NSString *)directoryAtPath:(NSString *)path;
  115. // 根据文件路径获取文件扩展类型
  116. + (NSString *)suffixAtPath:(NSString *)path;
  117. #pragma mark - 判断文件(夹)是否存在
  118. // 判断文件路径是否存在
  119. + (BOOL)isExistsAtPath:(NSString *)path;
  120. // 判断路径是否为空(判空条件是文件大小为0,或者是文件夹下没有子文件)
  121. + (BOOL)isEmptyItemAtPath:(NSString *)path;
  122. // 判断路径是否为空(错误信息error)
  123. + (BOOL)isEmptyItemAtPath:(NSString *)path error:(NSError **)error;
  124. // 判断目录是否是文件夹
  125. + (BOOL)isDirectoryAtPath:(NSString *)path;
  126. // 判断目录是否是文件夹(错误信息error)
  127. + (BOOL)isDirectoryAtPath:(NSString *)path error:(NSError **)error;
  128. // 判断目录是否是文件
  129. + (BOOL)isFileAtPath:(NSString *)path;
  130. // 判断目录是否是文件(错误信息error)
  131. + (BOOL)isFileAtPath:(NSString *)path error:(NSError **)error;
  132. // 判断目录是否可以执行
  133. + (BOOL)isExecutableItemAtPath:(NSString *)path;
  134. // 判断目录是否可读
  135. + (BOOL)isReadableItemAtPath:(NSString *)path;
  136. // 判断目录是否可写
  137. + (BOOL)isWritableItemAtPath:(NSString *)path;
  138. #pragma mark - 获取文件(夹)大小
  139. // 获取目录大小
  140. + (NSNumber *)sizeOfItemAtPath:(NSString *)path;
  141. // 获取目录大小(错误信息error)
  142. + (NSNumber *)sizeOfItemAtPath:(NSString *)path error:(NSError **)error;
  143. // 获取文件大小
  144. + (NSNumber *)sizeOfFileAtPath:(NSString *)path;
  145. // 获取文件大小(错误信息error)
  146. + (NSNumber *)sizeOfFileAtPath:(NSString *)path error:(NSError **)error;
  147. // 获取文件夹大小
  148. + (NSNumber *)sizeOfDirectoryAtPath:(NSString *)path;
  149. // 获取文件夹大小(错误信息error)
  150. + (NSNumber *)sizeOfDirectoryAtPath:(NSString *)path error:(NSError **)error;
  151. // 获取目录大小,返回格式化后的数值
  152. + (NSString *)sizeFormattedOfItemAtPath:(NSString *)path;
  153. // 获取目录大小,返回格式化后的数值(错误信息error)
  154. + (NSString *)sizeFormattedOfItemAtPath:(NSString *)path error:(NSError **)error;
  155. // 获取文件大小,返回格式化后的数值
  156. + (NSString *)sizeFormattedOfFileAtPath:(NSString *)path;
  157. // 获取文件大小,返回格式化后的数值(错误信息error)
  158. + (NSString *)sizeFormattedOfFileAtPath:(NSString *)path error:(NSError **)error;
  159. // 获取文件夹大小,返回格式化后的数值
  160. + (NSString *)sizeFormattedOfDirectoryAtPath:(NSString *)path;
  161. // 获取文件夹大小,返回格式化后的数值(错误信息error)
  162. + (NSString *)sizeFormattedOfDirectoryAtPath:(NSString *)path error:(NSError **)error;
  163. #pragma mark - 写入文件内容
  164. // 写入文件内容
  165. + (BOOL)writeFileAtPath:(NSString *)path content:(NSObject *)content;
  166. // 写入文件内容(错误信息error)
  167. + (BOOL)writeFileAtPath:(NSString *)path content:(NSObject *)content error:(NSError **)error;
  168. @end