美文网首页SwiftiOS 开发相关Swift项目相关
[Swift] iOS中的目录路径以及获取方法

[Swift] iOS中的目录路径以及获取方法

作者: JaiUnChat | 来源:发表于2016-05-04 07:03 被阅读2684次

    本文简略介绍一下iOS的四个目录和存取方法(Swift4)。

    iOS沙箱模型的四个文件夹: AppName.app, Documents, Library (Cache & Preferences), tmp

    ——简介——

    1. AppName.app 目录:这是应用程序的程序包目录,包含应用程序的本身。由于应用程序必须经过签名,所以您在运行时不能对这个目录中的内容进行修改,否则可能会使应用程序无法启动。 包含下述三个文件夹Documents、Library、tmp

    2. Documents 目录:应该将所有的应用程序数据文件写入到这个目录下。这个目录用于存储用户数据或其它应该定期备份的信息。iTunes会自动备份这里面的文件。

    3. Library 目录:这个目录下有两个子目录:Caches 和 Preferences
      3.1 Preferences 目录:包含应用程序的偏好设置文件。不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应用程序的偏好.
      3.2 Caches 目录:用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。

    4. tmp 目录:这个目录用于存放临时文件,保存应用程序再次启动过程中不需要的信息。

    ——访问方法——

    获取这些目录路径的方法(对应上面的编号):

    1. 获取主目录路径的函数:
       let homeDir = NSHomeDirectory()
    
    2. 获取Documents目录路径:
       let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
       let cachesDir = paths[0]
    
    3.1 获取Caches目录路径:
       let paths = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true)
       let cachesDir = paths[0]
    
    3.2 获取 Preference 目录路径:
       let paths = NSSearchPathForDirectoriesInDomains(.preferenceDirectory, .userDomainMask, true)
       let cachesDir = paths[0]
    

    但是一般通过UserDefaults.standard来操作。

    4. 获取tmp目录路径:
       let tmpDir = NSTemporaryDirectory()`
    
    5. 获取应用程序程序包中资源文件路径的方法:

    例如获取程序包中一个图片资源(imageName.png)路径的方法:

       let imagePath = NSBundle.mainBundle().pathForResource("imageName", ofType: "png")`
       let image = UIImage(contentsOfFile: imagePath)`
    

    代码中的mainBundle类方法用于返回一个代表应用程序包的对象。

    相关文章

      网友评论

      • 长衣貌:想问一下大佬,OC中拼接路径的方法 在Swift变成什么了 ??
        长衣貌:@CallOfOrange 谢谢,找到了
        JaiUnChat:先转成NSString你就找到那个方法了
        `let path2 = NSString(string: path[0]).appendingPathComponent("tmp")`

      本文标题:[Swift] iOS中的目录路径以及获取方法

      本文链接:https://www.haomeiwen.com/subject/kyvqrttx.html