{"id":3148,"date":"2021-06-08T13:58:16","date_gmt":"2021-06-08T05:58:16","guid":{"rendered":"http:\/\/123.57.164.21\/?p=3148"},"modified":"2023-08-26T22:31:18","modified_gmt":"2023-08-26T14:31:18","slug":"swift-%e6%96%87%e4%bb%b6%ef%bc%8c%e6%96%87%e4%bb%b6%e5%a4%b9%e6%93%8d%e4%bd%9c%e5%a4%a7%e5%85%a8","status":"publish","type":"post","link":"https:\/\/92it.top\/?p=3148","title":{"rendered":"Swift &#8211; \u6587\u4ef6\uff0c\u6587\u4ef6\u5939\u64cd\u4f5c\u5927\u5168"},"content":{"rendered":"\n<p>iOS\u5f00\u53d1\u7ecf\u5e38\u4f1a\u9047\u5230\u8bfb\u6587\u4ef6\uff0c\u5199\u6587\u4ef6\u7b49\uff0c\u5bf9\u6587\u4ef6\u548c\u6587\u4ef6\u5939\u7684\u64cd\u4f5c\uff0c\u8fd9\u65f6\u5c31\u53ef\u4ee5\u4f7f\u7528FileManager\uff0cFileHandle\u7b49\u7c7b\u6765\u5b9e\u73b0\u3002\u4e0b\u9762\u603b\u7ed3\u4e86\u5404\u79cd\u5e38\u7528\u7684\u64cd\u4f5c\uff1a<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">1\uff0c\u904d\u5386\u4e00\u4e2a\u76ee\u5f55\u4e0b\u7684\u6240\u6709\u6587\u4ef6<\/h5>\n\n\n\n<p>\u5047\u8bbe\u7528\u6237\u6587\u6863\u4e0b\u6709\u5982\u4e0b\u6587\u4ef6\u548c\u6587\u4ef6\u5939\uff1atest1.txt\u3001fold1\/test2.txt<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/123.57.164.21\/wp-content\/uploads\/2021\/06\/image-30.png\" alt=\"\" class=\"wp-image-3149\" width=\"433\" height=\"144\" srcset=\"https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-30.png 1000w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-30-300x100.png 300w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-30-768x257.png 768w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-30-830x277.png 830w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-30-230x77.png 230w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-30-350x117.png 350w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-30-480x160.png 480w\" sizes=\"(max-width: 433px) 100vw, 433px\" \/><\/figure><\/div>\n\n\n\n<p>\uff081\uff09\u9996\u5148\u6211\u4eec\u83b7\u53d6\u7528\u6237\u6587\u6863\u76ee\u5f55\u8def\u5f84<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">let manager = FileManager.default\nlet urlForDocument = manager.urls(for: .documentDirectory, in:.userDomainMask)\nlet url = urlForDocument[0] as URL\nprint(url)<\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/123.57.164.21\/wp-content\/uploads\/2021\/06\/image-31.png\" alt=\"\" class=\"wp-image-3150\" width=\"438\" height=\"128\" srcset=\"https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-31.png 886w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-31-300x88.png 300w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-31-768x225.png 768w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-31-830x244.png 830w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-31-230x67.png 230w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-31-350x103.png 350w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-31-480x141.png 480w\" sizes=\"(max-width: 438px) 100vw, 438px\" \/><\/figure><\/div>\n\n\n\n<p>\uff082\uff09\u5bf9\u6307\u5b9a\u8def\u5f84\u6267\u884c\u6d45\u641c\u7d22\uff0c\u8fd4\u56de\u6307\u5b9a\u76ee\u5f55\u8def\u5f84\u4e0b\u7684\u6587\u4ef6\u3001\u5b50\u76ee\u5f55\u53ca\u7b26\u53f7\u94fe\u63a5\u7684\u5217\u8868<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">let contentsOfPath = try? manager.contentsOfDirectory(atPath: url.path)\nprint(\"contentsOfPath: \\(contentsOfPath)\")<\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/123.57.164.21\/wp-content\/uploads\/2021\/06\/image-32.png\" alt=\"\" class=\"wp-image-3151\" width=\"447\" height=\"108\" srcset=\"https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-32.png 862w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-32-300x73.png 300w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-32-768x187.png 768w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-32-830x202.png 830w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-32-230x56.png 230w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-32-350x85.png 350w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-32-480x117.png 480w\" sizes=\"(max-width: 447px) 100vw, 447px\" \/><\/figure><\/div>\n\n\n\n<p>\uff083\uff09\u7c7b\u4f3c\u4e0a\u9762\u7684\uff0c\u5bf9\u6307\u5b9a\u8def\u5f84\u6267\u884c\u6d45\u641c\u7d22\uff0c\u8fd4\u56de\u6307\u5b9a\u76ee\u5f55\u8def\u5f84\u4e0b\u7684\u6587\u4ef6\u3001\u5b50\u76ee\u5f55\u53ca\u7b26\u53f7\u94fe\u63a5\u7684\u5217\u8868<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">let contentsOfURL = try? manager.contentsOfDirectory(at: url,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0includingPropertiesForKeys: nil, options: .skipsHiddenFiles)\nprint(\"contentsOfURL: \\(contentsOfURL)\")<\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/123.57.164.21\/wp-content\/uploads\/2021\/06\/image-33.png\" alt=\"\" class=\"wp-image-3152\" width=\"466\" height=\"151\" srcset=\"https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-33.png 896w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-33-300x98.png 300w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-33-768x250.png 768w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-33-830x270.png 830w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-33-230x75.png 230w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-33-350x114.png 350w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-33-480x156.png 480w\" sizes=\"(max-width: 466px) 100vw, 466px\" \/><\/figure><\/div>\n\n\n\n<p>\uff084\uff09\u6df1\u5ea6\u904d\u5386\uff0c\u4f1a\u9012\u5f52\u904d\u5386\u5b50\u6587\u4ef6\u5939\uff08\u4f46\u4e0d\u4f1a\u9012\u5f52\u7b26\u53f7\u94fe\u63a5\uff09<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">let enumeratorAtPath = manager.enumerator(atPath: url.path)\nprint(\"enumeratorAtPath: \\(enumeratorAtPath?.allObjects)\")\n<\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/123.57.164.21\/wp-content\/uploads\/2021\/06\/image-34.png\" alt=\"\" class=\"wp-image-3153\" width=\"470\" height=\"104\" srcset=\"https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-34.png 908w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-34-300x67.png 300w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-34-768x171.png 768w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-34-830x185.png 830w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-34-230x51.png 230w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-34-350x78.png 350w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-34-480x107.png 480w\" sizes=\"(max-width: 470px) 100vw, 470px\" \/><\/figure><\/div>\n\n\n\n<p>\uff085\uff09\u7c7b\u4f3c\u4e0a\u9762\u7684\uff0c\u6df1\u5ea6\u904d\u5386\uff0c\u4f1a\u9012\u5f52\u904d\u5386\u5b50\u6587\u4ef6\u5939\uff08\u4f46\u4e0d\u4f1a\u9012\u5f52\u7b26\u53f7\u94fe\u63a5\uff09<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">let enumeratorAtURL = manager.enumerator(at: url, includingPropertiesForKeys: nil,\n                                         options: .skipsHiddenFiles, errorHandler:nil)\nprint(\"enumeratorAtURL: \\(enumeratorAtURL?.allObjects)\")\n<\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/123.57.164.21\/wp-content\/uploads\/2021\/06\/image-35.png\" alt=\"\" class=\"wp-image-3154\" width=\"440\" height=\"180\" srcset=\"https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-35.png 896w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-35-300x123.png 300w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-35-768x315.png 768w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-35-830x341.png 830w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-35-230x94.png 230w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-35-350x144.png 350w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-35-480x197.png 480w\" sizes=\"(max-width: 440px) 100vw, 440px\" \/><\/figure><\/div>\n\n\n\n<p>\uff086\uff09\u6df1\u5ea6\u904d\u5386\uff0c\u4f1a\u9012\u5f52\u904d\u5386\u5b50\u6587\u4ef6\u5939\uff08\u5305\u62ec\u7b26\u53f7\u94fe\u63a5\uff0c\u6240\u4ee5\u8981\u6c42\u6027\u80fd\u7684\u8bdd\u7528enumeratorAtPath\uff09<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">let subPaths = manager.subpaths(atPath: url.path)\nprint(\"subPaths: \\(subPaths)\")<\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/123.57.164.21\/wp-content\/uploads\/2021\/06\/image-36.png\" alt=\"\" class=\"wp-image-3155\" width=\"473\" height=\"105\" srcset=\"https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-36.png 948w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-36-300x66.png 300w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-36-768x170.png 768w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-36-830x184.png 830w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-36-230x51.png 230w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-36-350x78.png 350w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-36-480x106.png 480w\" sizes=\"(max-width: 473px) 100vw, 473px\" \/><\/figure><\/div>\n\n\n\n<h5 class=\"wp-block-heading\">2\uff0c\u5224\u65ad\u6587\u4ef6\u6216\u6587\u4ef6\u5939\u662f\u5426\u5b58\u5728<\/h5>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">let fileManager = FileManager.default\nlet filePath:String = NSHomeDirectory() + \"\/Documents\/hangge.txt\"\nlet exist = fileManager.fileExists(atPath: filePath)\n<\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">3\uff0c\u521b\u5efa\u6587\u4ef6\u5939&nbsp;<\/h5>\n\n\n\n<p>\u65b9\u5f0f1\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">let myDirectory:String = NSHomeDirectory() + \"\/Documents\/myFolder\/Files\"\nlet fileManager = FileManager.default\n \n\/\/withIntermediateDirectories\u4e3ature\u8868\u793a\u8def\u5f84\u4e2d\u95f4\u5982\u679c\u6709\u4e0d\u5b58\u5728\u7684\u6587\u4ef6\u5939\u90fd\u4f1a\u521b\u5efa\ntry! fileManager.createDirectory(atPath: myDirectory,\n                        withIntermediateDirectories: true, attributes: nil)<\/pre>\n\n\n\n<p>\u65b9\u5f0f2\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">func createFolder(name:String,baseUrl:NSURL){\n    let manager = FileManager.default\n    let folder = baseUrl.appendingPathComponent(name, isDirectory: true)\n    print(\"\u6587\u4ef6\u5939: \\(folder)\")\n    let exist = manager.fileExists(atPath: folder!.path)\n    if !exist {\n        try! manager.createDirectory(at: folder!, withIntermediateDirectories: true,\n                                     attributes: nil)\n    }\n}\n     \n\/\/\u5728\u6587\u6863\u76ee\u5f55\u4e0b\u65b0\u5efafolder\u76ee\u5f55\nlet manager = FileManager.default\nlet urlForDocument = manager.urls(for: .documentDirectory, in: .userDomainMask)\nlet url = urlForDocument[0] as NSURL\ncreateFolder(name: \"folder\", baseUrl: url)\n<\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">4\uff0c\u5c06\u5bf9\u8c61\u5199\u5165\u6587\u4ef6<\/h5>\n\n\n\n<p>\u53ef\u4ee5\u901a\u8fc7write(to:)\u65b9\u6cd5\uff0c\u53ef\u4ee5\u521b\u5efa\u6587\u4ef6\u5e76\u5c06\u5bf9\u8c61\u5199\u5165\uff0c\u5bf9\u8c61\u5305\u62ecString\uff0cNSString\uff0cUIImage\uff0cNSArray\uff0cNSDictionary\u7b49\u3002<\/p>\n\n\n\n<p><strong>\uff081\uff09\u628aString\u4fdd\u5b58\u5230\u6587\u4ef6<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">let filePath:String = NSHomeDirectory() + \"\/Documents\/hangge.txt\"\nlet info = \"\u6b22\u8fce\u6765\u5230hange.com\"\ntry! info.write(toFile: filePath, atomically: true, encoding: String.Encoding.utf8)<\/pre>\n\n\n\n<p><strong>\uff082\uff09\u628a\u56fe\u7247\u4fdd\u5b58\u5230\u6587\u4ef6\u8def\u5f84\u4e0b<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">let filePath = NSHomeDirectory() + \"\/Documents\/hangge.png\"\nlet image = UIImage(named: \"apple.png\")\nlet data:Data = UIImagePNGRepresentation(image!)!\ntry? data.write(to: URL(fileURLWithPath: filePath))<\/pre>\n\n\n\n<p><strong>\uff083\uff09\u628aNSArray\u4fdd\u5b58\u5230\u6587\u4ef6\u8def\u5f84\u4e0b<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">let array = NSArray(objects: \"aaa\",\"bbb\",\"ccc\")\nlet filePath:String = NSHomeDirectory() + \"\/Documents\/array.plist\"\narray.write(toFile: filePath, atomically: true)<\/pre>\n\n\n\n<p><strong>\uff084\uff09\u628aNSDictionary\u4fdd\u5b58\u5230\u6587\u4ef6\u8def\u5f84\u4e0b<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">let dictionary:NSDictionary = [\"Gold\": \"1st Place\", \"Silver\": \"2nd Place\"]\nlet filePath:String = NSHomeDirectory() + \"\/Documents\/dictionary.plist\"\ndictionary.write(toFile: filePath, atomically: true)<\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">5\uff0c\u521b\u5efa\u6587\u4ef6<\/h5>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">func createFile(name:String, fileBaseUrl:URL){\n    let manager = FileManager.default\n     \n    let file = fileBaseUrl.appendingPathComponent(name)\n    print(\"\u6587\u4ef6: \\(file)\")\n    let exist = manager.fileExists(atPath: file.path)\n    if !exist {\n        let data = Data(base64Encoded:\"aGVsbG8gd29ybGQ=\" ,options:.ignoreUnknownCharacters)\n        let createSuccess = manager.createFile(atPath: file.path,contents:data,attributes:nil)\n        print(\"\u6587\u4ef6\u521b\u5efa\u7ed3\u679c: \\(createSuccess)\")\n    }\n}\n \n\/\/\u5728\u6587\u6863\u76ee\u5f55\u4e0b\u65b0\u5efatest.txt\u6587\u4ef6\nlet manager = FileManager.default\nlet urlForDocument = manager.urls( for: .documentDirectory,\n                                   in:.userDomainMask)\nlet url = urlForDocument[0]\ncreateFile(name:\"test.txt\", fileBaseUrl: url)\n\/\/createFile(name: \"folder\/new.txt\", fileBaseUrl: url)\n<\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">6\uff0c\u590d\u5236\u6587\u4ef6&nbsp;<\/h5>\n\n\n\n<p>\uff081\uff09\u65b9\u6cd51<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">let fileManager = FileManager.default\nlet homeDirectory = NSHomeDirectory()\nlet srcUrl = homeDirectory + \"\/Documents\/hangge.txt\"\nlet toUrl = homeDirectory + \"\/Documents\/copyed.txt\"\ntry! fileManager.copyItem(atPath: srcUrl, toPath: toUrl)\n<\/pre>\n\n\n\n<p>\uff082\uff09\u65b9\u6cd52<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u5b9a\u4f4d\u5230\u7528\u6237\u6587\u6863\u76ee\u5f55\nlet manager = FileManager.default\nlet urlForDocument = manager.urls( for:.documentDirectory, in:.userDomainMask)\nlet url = urlForDocument[0]\n \n\/\/ \u5c06test.txt\u6587\u4ef6\u62f7\u8d1d\u5230\u6587\u6863\u76ee\u5f55\u6839\u76ee\u5f55\u4e0b\u7684copyed.txt\u6587\u4ef6\nlet srcUrl = url.appendingPathComponent(\"test.txt\")\nlet toUrl = url.appendingPathComponent(\"copyed.txt\")\n \ntry! manager.copyItem(at: srcUrl, to: toUrl)\n<\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">7\uff0c\u79fb\u52a8\u6587\u4ef6<\/h5>\n\n\n\n<p>\uff081\uff09\u65b9\u6cd51<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">let fileManager = FileManager.default\nlet homeDirectory = NSHomeDirectory()\nlet srcUrl = homeDirectory + \"\/Documents\/hangge.txt\"\nlet toUrl = homeDirectory + \"\/Documents\/moved\/hangge.txt\"\ntry! fileManager.moveItem(atPath: srcUrl, toPath: toUrl)<\/pre>\n\n\n\n<p>\uff082\uff09\u65b9\u6cd52<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u5b9a\u4f4d\u5230\u7528\u6237\u6587\u6863\u76ee\u5f55\nlet manager = FileManager.default\nlet urlForDocument = manager.urls( for: .documentDirectory, in:.userDomainMask)\nlet url = urlForDocument[0]\n \nlet srcUrl = url.appendingPathComponent(\"test.txt\")\nlet toUrl = url.appendingPathComponent(\"copyed.txt\")\n\/\/ \u79fb\u52a8srcUrl\u4e2d\u7684\u6587\u4ef6\uff08test.txt\uff09\u5230toUrl\u4e2d\uff08copyed.txt\uff09\ntry! manager.moveItem(at: srcUrl, to: toUrl)\n<\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">8\uff0c\u5220\u9664\u6587\u4ef6<\/h5>\n\n\n\n<p>\uff081\uff09\u65b9\u6cd51<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">let fileManager = FileManager.default\nlet homeDirectory = NSHomeDirectory()\nlet srcUrl = homeDirectory + \"\/Documents\/hangge.txt\"\ntry! fileManager.removeItem(atPath: srcUrl)\n<\/pre>\n\n\n\n<p>\uff082\uff09\u65b9\u6cd52<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u5b9a\u4f4d\u5230\u7528\u6237\u6587\u6863\u76ee\u5f55\nlet manager = FileManager.default\nlet urlForDocument = manager.urls(for: .documentDirectory, in:.userDomainMask)\nlet url = urlForDocument[0]\n \nlet toUrl = url.appendingPathComponent(\"copyed.txt\")\n\/\/ \u5220\u9664\u6587\u6863\u6839\u76ee\u5f55\u4e0b\u7684toUrl\u8def\u5f84\u7684\u6587\u4ef6\uff08copyed.txt\u6587\u4ef6\uff09\ntry! manager.removeItem(at: toUrl)<\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">9\uff0c\u5220\u9664\u76ee\u5f55\u4e0b\u6240\u6709\u7684\u6587\u4ef6<\/h5>\n\n\n\n<p>\uff081\uff09\u65b9\u6cd51\uff1a\u83b7\u53d6\u6240\u6709\u6587\u4ef6\uff0c\u7136\u540e\u904d\u5386\u5220\u9664<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">let fileManager = FileManager.default\nlet myDirectory = NSHomeDirectory() + \"\/Documents\/Files\"\nlet fileArray = fileManager.subpaths(atPath: myDirectory)\nfor fn in fileArray!{\n    try! fileManager.removeItem(atPath: myDirectory + \"\/\\(fn)\")\n}\n<\/pre>\n\n\n\n<p>\uff082\uff09\u65b9\u6cd52\uff1a\u5220\u9664\u76ee\u5f55\u540e\u91cd\u65b0\u521b\u5efa\u8be5\u76ee\u5f55<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">let fileManager = FileManager.default\nlet myDirectory = NSHomeDirectory() + \"\/Documents\/Files\"\ntry! fileManager.removeItem(atPath: myDirectory)\ntry! fileManager.createDirectory(atPath: myDirectory, withIntermediateDirectories: true,\n                                 attributes: nil)<\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">10\uff0c\u8bfb\u53d6\u6587\u4ef6<\/h5>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">let manager = FileManager.default\nlet urlsForDocDirectory = manager.urls(for: .documentDirectory, in:.userDomainMask)\nlet docPath = urlsForDocDirectory[0]\nlet file = docPath.appendingPathComponent(\"test.txt\")\n \n\/\/\u65b9\u6cd51\nlet readHandler = try! FileHandle(forReadingFrom:file)\nlet data = readHandler.readDataToEndOfFile()\nlet readString = String(data: data, encoding: String.Encoding.utf8)\nprint(\"\u6587\u4ef6\u5185\u5bb9: \\(readString)\")\n \n\/\/\u65b9\u6cd52\nlet data2 = manager.contents(atPath: file.path)\nlet readString2 = String(data: data2!, encoding: String.Encoding.utf8)\nprint(\"\u6587\u4ef6\u5185\u5bb9: \\(readString2)\")<\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">11\uff0c\u5728\u4efb\u610f\u4f4d\u7f6e\u5199\u5165\u6570\u636e<\/h5>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">let manager = FileManager.default\nlet urlsForDocDirectory = manager.urls(for:.documentDirectory, in:.userDomainMask)\nlet docPath = urlsForDocDirectory[0]\nlet file = docPath.appendingPathComponent(\"test.txt\")\n \nlet string = \"\u6dfb\u52a0\u4e00\u4e9b\u6587\u5b57\u5230\u6587\u4ef6\u672b\u5c3e\"\nlet appendedData = string.data(using: String.Encoding.utf8, allowLossyConversion: true)\nlet writeHandler = try? FileHandle(forWritingTo:file)\nwriteHandler!.seekToEndOfFile()\nwriteHandler!.write(appendedData!)\n<\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">12\uff0c\u6587\u4ef6\u6743\u9650\u5224\u65ad<\/h5>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">let manager = FileManager.default\nlet urlForDocument = manager.urls(for: .documentDirectory, in:.userDomainMask)\nlet docPath = urlForDocument[0]\nlet file = docPath.appendingPathComponent(\"test.txt\")\n \nlet readable = manager.isReadableFile(atPath: file.path)\nprint(\"\u53ef\u8bfb: \\(readable)\")\nlet writeable = manager.isWritableFile(atPath: file.path)\nprint(\"\u53ef\u5199: \\(writeable)\")\nlet executable = manager.isExecutableFile(atPath: file.path)\nprint(\"\u53ef\u6267\u884c: \\(executable)\")\nlet deleteable = manager.isDeletableFile(atPath: file.path)\nprint(\"\u53ef\u5220\u9664: \\(deleteable)\")<\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">13\uff0c\u83b7\u53d6\u6587\u4ef6\u5c5e\u6027\uff08\u521b\u5efa\u65f6\u95f4\uff0c\u4fee\u6539\u65f6\u95f4\uff0c\u6587\u4ef6\u5927\u5c0f\uff0c\u6587\u4ef6\u7c7b\u578b\u7b49\u4fe1\u606f\uff09<\/h5>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">let manager = FileManager.default\nlet urlForDocument = manager.urls(for: .documentDirectory, in:.userDomainMask)\nlet docPath = urlForDocument[0]\nlet file = docPath.appendingPathComponent(\"test.txt\")\n \nlet attributes = try? manager.attributesOfItem(atPath: file.path) \/\/\u7ed3\u679c\u4e3aDictionary\u7c7b\u578b\nprint(\"attributes: \\(attributes!)\")\n<\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/123.57.164.21\/wp-content\/uploads\/2021\/06\/image-37-1024x384.png\" alt=\"\" class=\"wp-image-3158\" width=\"437\" height=\"164\" srcset=\"https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-37-1024x384.png 1024w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-37-300x112.png 300w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-37-768x288.png 768w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-37-830x311.png 830w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-37-230x86.png 230w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-37-350x131.png 350w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-37-480x180.png 480w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-37.png 1142w\" sizes=\"(max-width: 437px) 100vw, 437px\" \/><\/figure><\/div>\n\n\n\n<p>\u4ece&nbsp;<strong>attributes<\/strong>&nbsp;\u4e2d\u83b7\u53d6\u5177\u4f53\u7684\u5c5e\u6027\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">print(\"\u521b\u5efa\u65f6\u95f4\uff1a\\(attributes![FileAttributeKey.creationDate]!)\")\nprint(\"\u4fee\u6539\u65f6\u95f4\uff1a\\(attributes![FileAttributeKey.modificationDate]!)\")\nprint(\"\u6587\u4ef6\u5927\u5c0f\uff1a\\(attributes![FileAttributeKey.size]!)\")<\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/123.57.164.21\/wp-content\/uploads\/2021\/06\/image-38.png\" alt=\"\" class=\"wp-image-3159\" width=\"353\" height=\"111\" srcset=\"https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-38.png 620w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-38-300x95.png 300w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-38-230x73.png 230w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-38-350x111.png 350w, https:\/\/92it.top\/wp-content\/uploads\/2021\/06\/image-38-480x152.png 480w\" sizes=\"(max-width: 353px) 100vw, 353px\" \/><\/figure><\/div>\n\n\n\n<h5 class=\"wp-block-heading\">14\uff0c\u6587\u4ef6\/\u6587\u4ef6\u5939\u6bd4\u8f83<\/h5>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">let manager = FileManager.default\nlet urlForDocument = manager.urls(for: .documentDirectory, in:.userDomainMask)\nlet docPath = urlForDocument[0]\nlet contents = try! manager.contentsOfDirectory(atPath: docPath.path)\n \n\/\/\u4e0b\u9762\u6bd4\u8f83\u7528\u6237\u6587\u6863\u4e2d\u524d\u9762\u4e24\u4e2a\u6587\u4ef6\u662f\u5426\u5185\u5bb9\u76f8\u540c\uff08\u8be5\u65b9\u6cd5\u4e5f\u53ef\u4ee5\u7528\u6765\u6bd4\u8f83\u76ee\u5f55\uff09\nlet count = contents.count\nif count > 1 {\n    let path1 = docPath.path + \"\/\" + (contents[0] as String)\n    let path2 = docPath.path + \"\/\" + (contents[1] as String)\n    let equal = manager.contentsEqual(atPath: path1,andPath:path2)\n    print(\"path1\uff1a\\(path1)\")\n    print(\"path2\uff1a\\(path2)\")\n    print(\"\u6bd4\u8f83\u7ed3\u679c\uff1a \\(equal)\")\n}\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>iOS\u5f00\u53d1\u7ecf\u5e38\u4f1a\u9047\u5230\u8bfb\u6587\u4ef6\uff0c\u5199\u6587\u4ef6\u7b49\uff0c\u5bf9\u6587\u4ef6\u548c\u6587\u4ef6\u5939\u7684\u64cd\u4f5c\uff0c\u8fd9\u65f6\u5c31\u53ef\u4ee5\u4f7f\u7528FileManager\uff0cFileHa [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,8],"tags":[],"_links":{"self":[{"href":"https:\/\/92it.top\/index.php?rest_route=\/wp\/v2\/posts\/3148"}],"collection":[{"href":"https:\/\/92it.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/92it.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/92it.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/92it.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3148"}],"version-history":[{"count":5,"href":"https:\/\/92it.top\/index.php?rest_route=\/wp\/v2\/posts\/3148\/revisions"}],"predecessor-version":[{"id":12364,"href":"https:\/\/92it.top\/index.php?rest_route=\/wp\/v2\/posts\/3148\/revisions\/12364"}],"wp:attachment":[{"href":"https:\/\/92it.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3148"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/92it.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3148"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/92it.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3148"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}