IOS_swift文件系统

2023-10-26

    func files(){
        //应用根目录
        let dir = NSHomeDirectory();
        NSLog("dir = \(dir)")
        
        // 文档目录
        let doc = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0]
        NSLog("doc = \(doc)")
        
        // library目录
        let library = NSSearchPathForDirectoriesInDomains(.LibraryDirectory, .UserDomainMask, true)[0]
        NSLog("doc = \(library)")
        
        //判断目录是否存在
        let manager = NSFileManager.defaultManager()
        let myDir = "\(doc)/my"
        let isExist = manager.fileExistsAtPath(myDir)
        if(isExist){
            NSLog("存在my文件夹")
        }else{
            NSLog("不存在my文件夹!")
            //创建文件夹
            do{
                try manager.createDirectoryAtPath(myDir, withIntermediateDirectories: true, attributes: nil)
            }catch{
            }
        }
        
        //判断文件是否存在
        let myTxt = "\(doc)/my.txt"
        let isExistMyTxt = manager.fileExistsAtPath(myTxt)
        if(isExistMyTxt){
            NSLog("存在my.txt")
        }else{
            NSLog("不存在my.txt")
            //创建文件
            manager.createFileAtPath(myTxt, contents: nil, attributes: nil)
        }
        
        // 用户首选项
        let userDefault = NSUserDefaults.standardUserDefaults()
        userDefault.setObject("2012", forKey: "time")
        userDefault.synchronize()
        
        let time = userDefault.stringForKey("time")
        NSLog("time = \(time!)")
        
        //保存文件
        let arr:NSArray = ["11","33","22"]
        arr.writeToFile(myTxt, atomically: true)
        
        let content = NSArray(contentsOfFile: myTxt)!
        print(content)
        
        //对象保存
        let stuPlist = "\(doc)/stu.plist"
        let stu = Student(name: "zhangsan", age: 20)
        NSKeyedArchiver.archiveRootObject(stu, toFile: stuPlist)
        
        let stu2 = NSKeyedUnarchiver.unarchiveObjectWithFile(stuPlist) as? Student
        if stu2 != nil {
            print("name = \(stu2!.name), age = \(stu2!.age)")
        }
    }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IOS_swift文件系统 的相关文章

随机推荐

  • “Object reference not set to an instance of an object”报错

    Object reference not set to an instance of an object 报错原因 对象的实例化Instantiate X Instance gameObject 在引用外部脚本过程中 无法实现并报错 Obj
  • 基于MybatisPlus的多表查询

    基于MybatisPlus的多表查询 mybaitsPlus配置文档 mybatis3 x文档 目录 一对一查询 方式一 非select配置方式 方式二 通过select进行多表查询 一对多查询 用户对应多账户示例 方式一 非select配
  • 2021-06-10其他常用类

    StringUtils isNotBlank 判断不为空且也不是空字符串
  • 生成对抗性网络简介

    生成对抗性网络简介 1 原理 1 GANs如何工作 2 GAN架构 3 培训GAN 4 艺术家与评论家 5 评估指标 6 GAN变体 7 GAN应用 8 图像合成 Image synthesis 9 图像到图像的转换 Image to im
  • MySQL之InnoDB存储结构

    1 InnoDB存储引擎 InnoDB存储引擎最早由Innobase Oy公司开发 属第三方存储引擎 从MySQL 5 5版本开始作为表的默认存储引擎 该存储引擎是第一个完整支持ACID事务的MySQL存储引擎 特点是行锁设计 支持MVCC
  • 解决eclipse无法解析导入org.eclipse.swt库

    右键点击项目 gt Build Path gt Config Build Path 然后选择Libraries标签页 点击Add External JARs 再到你的eclipse安装目录下的plugins目录下寻找 org eclipse
  • JNI手动释放内存(避免内存泄露)

    1 哪些需要手动释放 不要手动释放 基本类型 jint jlong jchar 需要手动释放 引用类型 数组家族 jstring jobject jobjectArray jintArray jclass jmethodID 2 释放方法
  • 并发编程-CompletableFuture解析

    1 CompletableFuture介绍 CompletableFuture对象是JDK1 8版本新引入的类 这个类实现了两个接口 一个是Future接口 一个是CompletionStage接口 CompletionStage接口是JD
  • launch the mysql_MySQL安装最后一步无响应解决方法

    一 卸载及安装 MySQL安装到最后一步就卡住 如图 卸载原来安装的MySQL1 首先 卸载MySQL 2 然后 删除C盘下 C ProgramData MySQL 文件 然后重新安装MySQL 但是 这里要注意了 安装图1中时不要勾上 L
  • App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure.

    app涉及到http访问时 会出现这个错误 App Transport Security has blocked a cleartext HTTP http resource load since it is insecure 解决方法是
  • 【libevent 】libevent 多线程实现高并发

    当你看到这篇文章时 想必你对libevent已经有了足够的了解 笔者在此就不多做描述了 直接进入正题 1 起因 最近在做Redis中间件 目标实现集群管理 分布式数据处理 高性能 由于在某些情况下 单个节点的Redis性能可能无法满足需求
  • 近半数年轻人存款不过十万,这届年轻人是存不下钱吗?

    近期 关于年轻人存款多少的话题 再一度登上了微博热搜 某媒体以一线和新一线城市年轻人为主要对象开展了抽样调查 结果显示 在1852位受访者中 存款低于1万的约有五分之一 而另一个分界点是10万 属于1 10万这个区间的人数最多 如果你的存款
  • linux 配置nginx文件下载页面

    root localhost conf vim nginx conf user nobody worker processes 1 events worker connections 1024 http include mime types
  • 从原理到应用教你了解毫米波雷达

    关注公众号 发现CV技术之美 本文转自西湖大学智能无人系统课题组 作者丁苏生 毫米波雷达基础知识 简介 毫米波雷达 mmWave Rader 采用毫米波作为电磁波发送信号 捕捉并处理电磁波经过路径障碍物的反射信号后可获取目标物体的 速度 距
  • Windows 让cmd启动的程序在后台运行

    在Linux下要使程序后台运行 可通过 java jar Client jar 来实现 在Windows下 则通过 start b java jar Client jar 来实现 20181227更新 这里说的后台运行是指在当前Termin
  • spring 配置

    不配置 启动事务 会报错 404 启用事务管理 EnableTransactionManagement SpringBootApplication scanBasePackages w sh EnableJpaRepositories ba
  • CentOS7安装redis5.0并且搭建集群

    记录在两台虚拟机 版本 CentOS7 上搭建Redis集群 Redis版本 redis 5 0 4 过程如下 1 下载安装 首先在一台虚拟机A IP 192 168 1 103 上新建目录redis 接着进入该目录下 下载redis 5
  • openmp设置线程数目_线程池的参数、配置、基本概念

    线程池的概念和工作机制 概念 首先系统空闲时在创建大量线程 这些线程的集合成为线程池 线程的生老病死都由线程池来决定 工作机制 当有任务到来时 提交给线程池 由线程池来指定线程执行任务 线程池会在内部寻找是否有可以执行任务的线程 任务执行完
  • vue+go-gin+nginx实现后台管理系统

    前后端分离的经典后台管理系统 主要用到的技术和组件 前端 vuejs 组件element ui ant vue axios 后端 golang 框架go gin swagger组件 服务代理 nginx 过程中的疑难问题和关键点记录 一 n
  • IOS_swift文件系统

    func files 应用根目录 let dir NSHomeDirectory NSLog dir dir 文档目录 let doc NSSearchPathForDirectoriesInDomains DocumentDirector