FileManager 的基本操作

????var domainListPath: String?

? ? var signaturePath: String?

? ? var publicKeyPath: String?

1、從documentDirectory獲取文件?

? ? ? ? let sandBoxPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).map(\.path)

? ? ? ? domainListPath = URL(fileURLWithPath: sandBoxPath[0]).appendingPathComponent("1.list").path

? ? ? ? signaturePath = URL(fileURLWithPath: sandBoxPath[0]).appendingPathComponent("2").path

? ? ? ? publicKeyPath = URL(fileURLWithPath: sandBoxPath[0]).appendingPathComponent("3.key").path


? ? ? ? 2、如果沒有就從bundle把文件復制到documents里面

? ? ? ? letfileMgr =FileManager.default

? ? ? ? fileMgr.delegate=self

? ? ? ? if(!fileMgr.fileExists(atPath:domainListPath!) ||

? ? ? ? ? ? !fileMgr.fileExists(atPath:signaturePath!) ||

? ? ? ? ? ? !fileMgr.fileExists(atPath:publicKeyPath!)) {

? ? ? ? ? ? do{

? ? ? ? ? ? ? ? tryfileMgr.copyItem(

? ? ? ? ? ? ? ? ? ? atPath: URL(fileURLWithPath: Bundle.main.resourcePath ?? "").appendingPathComponent("/default_list/domainip.list").path,

? ? ? ? ? ? ? ? ? ? toPath:domainListPath!)

? ? ? ? ? ? ? ? tryfileMgr.copyItem(

? ? ? ? ? ? ? ? ? ? atPath: URL(fileURLWithPath: Bundle.main.resourcePath ?? "").appendingPathComponent("/default_list/signature").path,

? ? ? ? ? ? ? ? ? ? toPath:signaturePath!)

? ? ? ? ? ? ? ? tryfileMgr.copyItem(

? ? ? ? ? ? ? ? ? ? atPath: URL(fileURLWithPath: Bundle.main.resourcePath ?? "").appendingPathComponent("/default_list/public.key").path,

? ? ? ? ? ? ? ? ? ? toPath:publicKeyPath!)

? ? ? ? ? ? }catch{

? ? ? ? ? ? }

? ? ? ? }

//MARK? FileManagerDelegate methods

? ? funcfileManager(_fileManager:FileManager,shouldCopyItemAtPathsrcPath:String,toPathdstPath:String) ->Bool{

? ? ? ? try? fileManager.removeItem(atPath: srcPath)

? ? ? ? if!FileManager.default.fileExists(atPath: srcPathasString) {

? ? ? ? ? ? do{

? ? ? ? ? ? ? ? tryFileManager.default.copyItem(atPath: srcPathasString,toPath: dstPathasString)


? ? ? ? ? ? }catch? {

? ? ? ? ? ? ? ? Log.Debug("func fileManager(_ fileManager: FileManager, shouldCopyItemAtPath srcPath: String, toPath dstPath: String) -> Bool")

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? return true

? ? }


? ? //mark DCheckerManager delegate methods

? ? func overwriteConfigurations() {

? ? ? ? letfileMgr =FileManager.default

? ? ? ? fileMgr.delegate=self


? ? ? ? do{

? ? ? ? ? ? tryfileMgr.copyItem(

? ? ? ? ? ? ? ? atPath: URL(fileURLWithPath: Bundle.main.resourcePath ?? "").appendingPathComponent("/default_list/domainip.list").path,

? ? ? ? ? ? ? ? toPath:domainListPath!)

? ? ? ? ? ? tryfileMgr.copyItem(

? ? ? ? ? ? ? ? atPath: URL(fileURLWithPath: Bundle.main.resourcePath ?? "").appendingPathComponent("/default_list/signature").path,

? ? ? ? ? ? ? ? toPath:signaturePath!)

? ? ? ? ? ? tryfileMgr.copyItem(

? ? ? ? ? ? ? ? atPath: URL(fileURLWithPath: Bundle.main.resourcePath ?? "").appendingPathComponent("/default_list/public.key").path,

? ? ? ? ? ? ? ? toPath:publicKeyPath!)

? ? ? ? }catch{

? ? ? ? }

? ? }

歡迎大家加入QQ群一起交流學習:

464406500

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容