您当前的位置: 首页 >  ios

iOS获取iCloud文件实际大小的方法

发布时间:2018-11-18 13:12:48 ,浏览量:0

我们知道在iCloud文件未同步到本地之前,它实际上只是一个占位文件。

如果iCloud文件名为look.pdf,那么实际本地的文件是.look.pdf.icloud,尽管你实际在Find中看到的貌似是look.pdf。

实际上.look.pdf.icloud是一个二进制的plist文件(bplist),但遗憾的是bplist格式Apple并没有公布出来!

那么如何获取该文件的实际大小呢?

主要有两种方法:

1.使用public link来实现 2.解析bplist文件来实现

第一种方法很方便,但生成public link速度慢,给用户体验不佳。

这里主要聊一聊后面一种方法。虽说bplist文件格式是不透明的,但所幸的是我们没必要解析整个bplist文件,我们只需要将文件大小解析出来。

下面是云文件在本地实际的内容:

在这里插入图片描述

可以看到它以bplist00开头,然后包含3个Key和他们对应的Value,这3个Key其中就有云文件的大小:NSURLFileSizeKey.但是它对应的值在哪里呢?

通过逆向bplist文件格式,从其中反向查找大小字节,可以知道其值就放在文件名与_下划线字符中间的位置。

注意文件大小保存的字节是可变的,如果不需要不会用4字节来保存(我不知道是否会用8字节,但目前来说4字节足够

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    107766博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.6226s