[Swift通天遁地]七、数据与安全-(6)管理文件夹和创建并操作文件
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/10306307.html
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
目录:[Swift]通天遁地Swift
本文将演示使用开源类库实现创建文件夹和文件操作:创建、写入、移动、遍历。
首先确保在项目中已经安装了所需的第三方库。
点击【Podfile】,查看安装配置文件。
1 platform :ios, '12.0' 2 use_frameworks! 3 4 target 'DemoApp' do 5 source 'https://github.com/CocoaPods/Specs.git' 6 pod 'FileKit' 7 end
根据配置文件中的相关配置,安装第三方库。
在项目导航区,打开视图控制器的代码文件【ViewController.swift】
1 import UIKit 2 //引入已经安装的第三方类库 3 import FileKit 4 5 class ViewController: UIViewController { 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 // Do any additional setup after loading the view, typically from a nib. 10 //创建文件 11 createFile() 12 //创建一个文件夹 13 createDirectory() 14 //复制一个文件 15 copyFile() 16 //移动一个文件 17 moveFile() 18 //遍历一个文件夹下的所有项目 19 findPath() 20 //写入文件 21 writeFile() 22 } 23 24 //添加一个方法,创建文件 25 func createFile() 26 { 27 //添加一个异常捕捉语句, 28 //用来在沙箱目录中,创建一个文件。 29 do 30 { 31 //初始化一个字符串常量,表示文件所在的沙箱路径 32 let file = NSHomeDirectory() + "/Documents/firstFile.txt" 33 //使用字符串生成一个路径对象 34 let path = Path(file) 35 //调用路径对象创建文件的方法, 36 //在指定路径上创建一个文本文件。 37 try path.createFile() 38 //在控制台输出文件的绝对路径 39 print(path.absolute) 40 } 41 catch 42 { 43 print("Something went wrong :(") 44 } 45 } 46 47 //添加一个方法,创建一个文件夹 48 func createDirectory() 49 { 50 //添加一个异常捕捉语句, 51 //用来在沙箱目录中,创建一个文件。 52 do 53 { 54 //初始化两个字符串常量,表示文件夹所在的沙箱路径 55 let directory1 = NSHomeDirectory() + "/Documents/myFolder1/subFolder" 56 let directory2 = NSHomeDirectory() + "/Documents/myFolder2" 57 58 //使用字符串生成一个路径对象 59 let path1 = Path(directory1) 60 //调用路径对象创建文件夹的方法, 61 //在指定路径上创建一个文件夹。包含子文件夹【subFolder】 62 try path1.createDirectory() 63 64 //使用字符串生成一个路径对象 65 let path2 = Path(directory2) 66 //调用路径对象创建文件夹的方法, 67 //在指定路径上创建一个文件夹。 68 //并且不创建之间的子文件夹。 69 try path2.createDirectory(withIntermediateDirectories: false) 70 71 //在控制台输出两个文件夹的路径。 72 print(path1) 73 print(path2) 74 } 75 catch 76 { 77 print("Something went wrong :(") 78 } 79 } 80 81 //添加一个方法,复制一个文件 82 func copyFile() 83 { 84 //初始化一个字符串常量,表示文件所在的沙箱路径。 85 let file1 = NSHomeDirectory() + "/Documents/firstFile.txt" 86 //初始化另一个字符串常量,表示文件被复制到的目标位置。 87 let file2 = NSHomeDirectory() + "/Documents/myFolder1/subFolder/firstFile_bak.txt" 88 89 //依次将两个字符串,转换成路径对象。 90 let path1 = Path(file1) 91 let path2 = Path(file2) 92 93 //添加一个异常捕捉语句,用来执行文件的复制。 94 do 95 { 96 //通过调用路径对象的复制到方法, 97 //将指定位置的文件,复制到另一个位置。 98 try path1.copyFile(to: path2) 99 } 100 catch 101 { 102 print("Something went wrong :(") 103 } 104 } 105 106 //添加一个方法,移动一个文件 107 func moveFile() 108 { 109 //初始化一个字符串常量,表示文件所在的沙箱路径。 110 let file1 = NSHomeDirectory() + "/Documents/firstFile.txt" 111 //初始化另一个字符串常量,表示文件被移动到的目标位置。 112 let file2 = NSHomeDirectory() + "/Documents/myFolder1/subFolder/firstFile_moved.txt" 113 114 //依次将两个字符串,转换成路径对象。 115 let path1 = Path(file1) 116 let path2 = Path(file2) 117 118 //添加一个异常捕捉语句, 119 do 120 { 121 //通过调用路径对象的移动到方法, 122 //将指定位置的文件,移动到另一个位置。 123 try path1.moveFile(to: path2) 124 } 125 catch 126 { 127 print("Something went wrong :(") 128 } 129 } 130 131 //添加一个方法,遍历一个文件夹下的所有项目 132 func findPath() 133 { 134 //初始化一个字符串常量,表示文件夹所在的沙箱路径。 135 let directory = NSHomeDirectory() + "/Documents/myFolder1/subFolder" 136 //将字符串转换成路径对象 137 let path = Path(directory) 138 139 //通过调用路径对象的查找方法, 140 //查找最多5层子目录中的所有文本文件。 141 let textFiles = path.find(searchDepth: 5) { path in 142 path.pathExtension == "txt" 143 } 144 145 //对获得的项目列表进行遍历 146 for file in textFiles 147 { 148 //绝对路径 149 print(">>>> file path: \(file.absolute)") 150 //文件名称 151 print(">>>> file name: \(file.fileName)") 152 //文件类型 153 print(">>>> file type: \(String(describing: file.fileType))") 154 //文件大小 155 print(">>>> file size: \(String(describing: file.fileSize))") 156 //是否存在 157 print(">>>> file exists: \(file.exists)") 158 //父目录 159 print(">>>> file parent: \(file.parent)") 160 //可写权限 161 print(">>>> file isWritable: \(file.isWritable)") 162 //可读权限 163 print(">>>> file isReadable: \(file.isReadable)") 164 //可删除权限 165 print(">>>> file isDeletable: \(file.isDeletable)") 166 //是否为文件夹 167 print(">>>> file isDirectory: \(file.isDirectory)") 168 //项目权限信息 169 print(">>>> file filePermissions: \(file.filePermissions)") 170 //是否为指定路径的子项目 171 print(">>>> file isChildOfPath: \(file.isChildOfPath(path))") 172 } 173 } 174 175 //添加一个方法, 176 //往一个已经存在的文本文件中,写入新的内容。 177 func writeFile() 178 { 179 //添加一个异常捕捉语句,用来执行写入文件的操作 180 do 181 { 182 //初始化一个字符串常量,表示文件所在的沙箱路径。 183 let file = NSHomeDirectory() + "/Documents/myFolder1/subFolder/firstFile_moved.txt" 184 //将字符串转换成路径对象 185 let path = Path(file) 186 187 //将字符串写入到指定路径的文本文件中 188 try "Here is CoolKeTang." |> TextFile(path: path) 189 } 190 catch 191 { 192 print("I can't write to a file?!") 193 } 194 } 195 196 override func didReceiveMemoryWarning() { 197 super.didReceiveMemoryWarning() 198 // Dispose of any resources that can be recreated. 199 } 200 }
转载于:https://www.cnblogs.com/strengthen/p/10306307.html
[Swift通天遁地]七、数据与安全-(6)管理文件夹和创建并操作文件相关推荐
- [Swift通天遁地]七、数据与安全-(1)XML文档的创建和解析
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- [Swift通天遁地]七、数据与安全-(19)使用Swift实现原生的SHA1加密
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- [Swift通天遁地]七、数据与安全-(2)对XML和HTML文档的快速解析
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- [Swift通天遁地]七、数据与安全-(12)使用Instruments Leaks工具检测内存泄露
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- [Swift通天遁地]五、高级扩展-(4)快速生成Invert、Mix、Tint、Shade颜色及调整饱和度阶...
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- [Swift通天遁地]三、手势与图表-(10)创建包含圆点、方形、三角形图标的散点图表...
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- [Swift通天遁地]二、表格表单-(11)创建星期选项表单和拥有浮动标签的文本框
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- [Swift通天遁地]一、超级工具-(16)使用JTAppleCalendar制作美观的日历
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- [Swift通天遁地]八、媒体与动画-(13)CoreText框架实现图文混排
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
最新文章
- 边缘数据中心维护的4个基本组件
- 1244. Gentlemen
- 【Python】学习笔记总结3(Python文件操作)
- mysql udf提权hex_Mysql_UDF提权
- java中如何将数字转换成字符串(int转换为string)
- Eigen官网教程(5) 规约、范数等
- linux服务器搭建_Linux下搭建FTP服务器笔记
- jdbc链接mysql按照id查询_使用jdbc连接并操作Oracle数据库(增删改查IDUS)
- Java中的关键字有哪些?
- 数据结构与算法学习笔记
- 医学知识图谱构建技术与研究进展
- 华为交换机初始化_华为交换机的初始配置
- 酒店客房管理系统(ssm,jsp,mysql,html,css,javascript)
- Vue入门学习总结一:Vue定义
- c语言 strcpy作用,c语言中的strcpy什么意思,简单点解释
- 如何从CRAN上下载R语言程序包
- iPhone13首批售罄连夜补货,粉色款爆红,天猫3分钟售罄!
- 锁相环PLL --原理浅析
- [办公自动化]如何选择投影仪的吊装距离
- QT 制作简易几何计算器
热门文章
- mysqlbinlog 加-v -vv 的区别
- 个人账本软件---界面设计
- 清华刘知远提出CPT:基于预训练视觉-语言模型的跨模态Prompt-Tuning
- 智引万物论剑AI,商汤科技欲打造颠覆式创新引擎
- iOS Xib Storyboard
- Android 禁止adb reboot recovery进入recovery模式
- 社会管理网格化 源码_威县方家营镇创新“网格化”管理模式,助推乡村社会治理能力提升...
- EOJ Monthly 2020.11 Sponsored by TuSimple F题“天桥”题解
- Essentially No Barriers in Neural Network Energy Landscape
- Workspaces can only be enabled in private projects