美文网首页
给文件添加自定义属性

给文件添加自定义属性

作者: _我和你一样 | 来源:发表于2018-05-27 23:49 被阅读0次

获取文件属性

let attur = try! FileManager.default.attributesOfItem(atPath: filePath)

文件属性大概如下:


image.png

其中我们要自定义的属性,就需要写在文件扩展属性中。
key是:NSFileExtendedAttributes
但是有两点需要注意:

  1. key 不能直接点出来,在Swift中得这么写:FileAttributeKey.init("NSFileExtendedAttributes")
  2. 对应的值并不是看上去的那样是个字典,它的值是一个Data。
    因此赋值的时候,需要赋值一个Data
    我们可以使用属性列表序列化的方式序列化一个Data
let customInfo = ["isenc":"1","mdataisenc":"0","product_model":"ALX-001"]
let data = try! PropertyListSerialization.data(fromPropertyList:customInfo, format: PropertyListSerialization.PropertyListFormat.binary, options: 0)

然后就可以设置值了

let extendAttribute = [FileAttributeKey.init("NSFileExtendedAttributes"):["customInfo":data]]
do {
    try FileManager.default.setAttributes(extendAttribute, ofItemAtPath: filePath)
} catch  {
    print(error)
}

读取是个反过程:

let attur = try! FileManager.default.attributesOfItem(atPath: helloPath)
let extendedAttribute = attur[FileAttributeKey.init("NSFileExtendedAttributes")] as! NSDictionary
let customData = extendedAttribute["customInfo"] as! Data
var format = PropertyListSerialization.PropertyListFormat.binary
let custom = try PropertyListSerialization.propertyList(from: customData, options: PropertyListSerialization.ReadOptions(rawValue: 0), format: &format)

因为key的值是个data,因此无论如何传个data,是用属性列表序列化,或者json序列化或是其他的都可以,只要转成data就好,读取和写入是个相关的过程,序列化要保持一致。

相关文章

  • 2.1 给project添加自定义属性(properties)

    除了默认属性,我们也可以给project[1]添加自定义属性,Gradle通过执行project的build文件来...

  • jQuery给标签添加自定义属性

    jQuery除了给标签添加自身属性外还可以添加自定义属性。下面代码包含了添加和获取自定义属性。添加的属性值有数字,...

  • 给文件添加自定义属性

    获取文件属性 文件属性大概如下: 其中我们要自定义的属性,就需要写在文件扩展属性中。key是:NSFileExte...

  • 圆角图片 自定义控件属性

    一、在res文件夹下添加attres.xml文件 添加属性 二、创建自定义文件 三、使用方法 四、Activity...

  • 第四章 view的工作原理(下)(重点)

    1.自定义view的流程 自定义view的属性在values的文件夹下创建attrs.xml,添加自定义属性 其中...

  • SpringBoot入门——属性文件读取

    一 自定义属性 在application.properties文件中添加属性配置项 myapp.name=hell...

  • HTML5 自定义属性

    自定义属性:添加前缀“data-” dataset属性:添加自定义属性后,通过元素的dataset属性来访问自定义...

  • 自定义属性

    1.在res/values文件下添加一个attrs.xml文件(文件名可以自己定义) 2.自定义属性类型 属性类型...

  • Android自定义属性

    1.自定义属性需要用xml文件添加: 在res/values下面添加attrs.xml文件 2.代码里面引用资源文...

  • iOS动态添加属性

    如何在不破坏原有类封装下添加属性( 动态添加property ) 当我们想给系统类或者自定义基类添加某个属性(简称...

网友评论

      本文标题:给文件添加自定义属性

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