[Xcode 实际操作]七、文件与数据-(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 }