功能描述
:主要针对在IOS开发时,难免需要读取手机里的文件信息,那么此篇讲如何利用沙盒的方式,读取到Documents下的文件,以及文件的重要字节信息。
如果你还未导入需要读取的文件,如果你需要用MAC电脑把文件放入手机程序里,可以参考我这篇文章(如何在MAC电脑上把文件导入到程序里)
一:获取手机文件中的路径目录
let documentPaths = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory,
FileManager.SearchPathDomainMask.userDomainMask, true)
//这个就是沙盒文件下Documents的路径,你的文件存储就放到这。
let documnetPath = documentPaths[0]
二:读取该路径下的文件名
let fm = FileManager.default
let contents = try! fm.contentsOfDirectory(atPath: documnetPath)
print(contents)
//循环出该路径下的文件,因为可能不只一个文件,所以全要显示到列表上。如果你要在此做限制也可以。如:仅限制尾缀.pem的文件
if(contents.count > 0){
for (index,value) in contents.enumerated() {
print(index,value)
//我的UI数据model层
let model1 = TimeModel()
model1.time = value
//把model赋值给数组
projectList.append(model1)
}
}else{
//如果手机中没有任何一个文件,就提示客户,需要放入文件才可以进行读取
WHToast.showMessage("Please import at least one key file!", originY: 500, duration: 2, finishHandler: {
})
return
}
三:此时,我们Documents下的所有文件列表都读取到了。现在,就进行读取你选择了那个文件名,就读取到那个文件里的字符信息。
这个是我的Model层,model.name是我的文件名
let t = model as! TimeModel
//依然再次读取到路径
let home = NSHomeDirectory() as NSString;
//链接到Documents下的路径
let docPath = home.appendingPathComponent("Documents") as NSString;
//链接到路径Documents/文件名(如:vice.demo.www.a2562264dz589/Documents/recproject.bin)
//这个就是完整的选择的文件名路径
let filePath = docPath.appendingPathComponent(t.name!);
//fileManager读取
let fileManager = FileManager.default
let exist = fileManager.fileExists(atPath: filePath)
if exist{
//链接到文件
let content = fileManager.contents(atPath: filePath)
let dat:Data = (content)!
//显示文件里的字节数据
let dict = String(data: dat, encoding: String.Encoding.utf8)
print(dict as Any)
//如:“82:56:dd:96:0e:d4:51:57:64:ea:48:96:08:72:ef”
//如:密钥文件“-----BEGIN EC PRIVATE KEY-----\r\nMHIBQJmCOCNe/Vz9uCVt2WDtg0/oAoGCCqGSM49\r\nAwEHoUQDQgAEbsxDt2TpY3AujSbpqkVTMzTaw4BaFv8mroE\r\nhUoudBA0igG5MbtQmlAdes2Bpw==\r\n-----END EC PRIVATE”
此时。最后一步。进行存储或发生到设备
BleManage.shared.writes(dict, for: self.resetCharater, periperalData: self.bleModel?.peripheral)
}
各位如果还有不懂的可以关注留言问我,希望能够帮助到您,一起努力,相互学习知识,长路漫漫,重在于一点一滴的积累。bay…