Swfit 读取文件路径/信息(二)

功能描述:主要针对在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…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值