[Swift通天遁地]7、數據與安全-(6)管理文件夾和建立並操做文件

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公衆號:山青詠芝(shanqingyongzhi)
➤博客園地址:山青詠芝(https://www.cnblogs.com/strengthen/
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:http://www.javashuo.com/article/p-tikyglpa-mb.html 
➤若是連接不是山青詠芝的博客園地址,則多是爬取做者的文章。
➤原文已修改更新!強烈建議點擊原文地址閱讀!支持做者!支持原創!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★html

目錄:[Swift]通天遁地Swiftios

本文將演示使用開源類庫實現建立文件夾和文件操做:建立、寫入、移動、遍歷。git

首先確保在項目中已經安裝了所需的第三方庫。github

點擊【Podfile】,查看安裝配置文件。swift

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 }
相關文章
相關標籤/搜索