1. 程式人生 > >[Xcode10 實際操作]七、檔案與資料-(5 )複製、移動、刪除檔案和刪除資料夾

[Xcode10 實際操作]七、檔案與資料-(5 )複製、移動、刪除檔案和刪除資料夾

本文將演示如何複製、移動和刪除檔案。

在專案導航區,開啟檢視控制器的程式碼檔案【ViewController.swift】

  1 import UIKit
  2 
  3 class ViewController: UIViewController {
  4 
  5     override func viewDidLoad() {
  6         super.viewDidLoad()
  7         // Do any additional setup after loading the view, typically from a nib.
  8
9 //呼叫方法,遍歷資料夾 10 self.listFolder() 11 //呼叫方法,用來複制檔案 12 self.copyFile() 13 //呼叫方法,用來移動一個檔案 14 self.moveFile() 15 //呼叫方法,用來刪除一個檔案 16 self.removeFile() 17 //呼叫方法,用來刪除一個資料夾下的所有內容 18 self.removeFolder()
19 //呼叫方法,遍歷資料夾 20 self.listFolder() 21 } 22 23 //建立一個方法,用來複制檔案 24 func copyFile() 25 { 26 //獲得檔案管理物件。 27 //檔案管理物件的主要功能包括: 28 //1.讀取檔案中的資料 29 //2.向一個檔案中寫入資料 30 //3.刪除或複製檔案 31 //4.移動檔案 32 //5.比較兩個檔案的內容 33
//6.檢測檔案的存在性 34 let fileManager = FileManager.default 35 //建立一個字串物件, 36 //該字串物件表示文件目錄下的一個文字檔案。 37 let sourceUrl = NSHomeDirectory() + "/Documents/swift.txt" 38 //再建立俺一個字串物件, 39 //表示檔案被複制後的目標位置 40 let targetUrl = NSHomeDirectory() + "/Documents/swift_bak.txt" 41 42 //建立一個異常捕捉語句,用於複製一個檔案 43 do 44 { 45 //使用try語句,將文字檔案複製到目標位置 46 try fileManager.copyItem(atPath: sourceUrl, toPath: targetUrl) 47 //在控制檯列印輸出日誌,提示文字檔案複製成功 48 print("Success to copy file.") 49 } 50 catch 51 { 52 print("Failed to copy file.") 53 } 54 } 55 56 //建立一個方法,用來移動一個檔案 57 func moveFile() 58 { 59 //獲得檔案管理物件 60 let fileManager = FileManager.default 61 //建立一個字串物件, 62 //該字串物件表示文件目錄下的一個屬性列表檔案。 63 let sourceUrl = NSHomeDirectory() + "/Documents/products.plist" 64 //再建立一個字串物件,表示檔案被移動後的目標位置 65 let targetUrl = NSHomeDirectory() + "/Documents/backUp" 66 67 //建立一個異常捕捉語句,用於移動一個檔案 68 do 69 { 70 //使用try語句,將屬性列表檔案移動到目標位置 71 try fileManager.moveItem(atPath: sourceUrl, toPath: targetUrl) 72 //在控制檯列印輸出日誌,提示屬性列表檔案移動成功 73 print("Success to move file.") 74 } 75 catch 76 { 77 print("Failed to move file.") 78 } 79 } 80 81 //建立一個方法,用來刪除一個檔案 82 func removeFile() 83 { 84 //獲得檔案管理物件 85 let fileManager = FileManager.default 86 //建立一個字串物件, 87 //該字串物件表示文件目錄下的一個圖片檔案。 88 let sourceUrl = NSHomeDirectory() + "/Documents/Pic.png" 89 90 //建立一個異常捕捉語句,用於移除一個檔案 91 do 92 { 93 //使用try語句,刪除指定位置的圖片 94 try fileManager.removeItem(atPath: sourceUrl) 95 //在控制檯列印輸出日誌,提示檔案刪除成功 96 print("Success to remove file.") 97 } 98 catch 99 { 100 print("Failed to remove file.") 101 } 102 } 103 104 //建立一個方法,用來刪除一個資料夾下的所有內容 105 func removeFolder() 106 { 107 //獲得檔案管理物件 108 let fileManager = FileManager.default 109 //建立一個字串物件, 110 //該字串物件表示文件目錄下的資料夾。 111 let folder = NSHomeDirectory() + "/Documents/backUp" 112 //獲得該目錄下的所有子資料夾 113 let files:[String]? = fileManager.subpaths(atPath: folder) 114 //建立一個迴圈語句,用來遍歷所有子目錄 115 for file in files! 116 { 117 //建立一個異常捕捉語句,用於刪除內容 118 do 119 { 120 //使用try語句,刪除指定位置的內容 121 try fileManager.removeItem(atPath: folder + "/\(file)") 122 //在控制檯列印輸出日誌,提示內容刪除成功 123 print("Success to remove folder.") 124 } 125 catch 126 { 127 print("Failed to remove folder.") 128 } 129 } 130 131 } 132 133 //建立一個方法,用來檢查和遍歷, 134 //在複製、移動、刪除等操作之後的資料夾 135 func listFolder() 136 { 137 //獲得檔案管理物件 138 let manager = FileManager.default 139 //建立一個字串物件, 140 //該字串物件表示文件目錄 141 let url = NSHomeDirectory() + "/Documents/" 142 143 //獲得文件目錄下的所有內容,以及子資料夾下的內容, 144 //並存儲在一個數組物件中 145 let contents = manager.enumerator(atPath: url) 146 //然後在控制檯列印輸出陣列內容 147 print("contents:\(String(describing: contents?.allObjects))") 148 } 149 150 override func didReceiveMemoryWarning() { 151 super.didReceiveMemoryWarning() 152 // Dispose of any resources that can be recreated. 153 } 154 }