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把文件復(fù)制到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群一起交流學(xué)習(xí):

464406500

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容