iOS 的文件管理是不是一坨粪?

[复制链接]
坏人 发表于 2023-10-6 17:04:29|来自:中国 | 显示全部楼层 |阅读模式
在百度网盘下的压缩包既找不到也死活解压不出来 查了一下发现解压还要改后缀名等一大堆繁杂的操作 这合理吗?听说越狱了会好很多?
全部回复5 显示全部楼层
ttitp 发表于 2023-10-6 17:05:13|来自:中国 | 显示全部楼层
iOS的文件管理是不是一坨粪?
这个答案可以说:是,也不是。
<hr/>iOS伴随着沙盒模式诞生,其特点就是应用之间无法直接访问文件数据,iOS不能像Windows系统那样使用文件管理器自由操作任何文件。所谓入乡随俗,桌面系统的使用习惯不能直接照搬到移动端,iPhone默认用户是傻瓜,不想给用户太多自由,让其污染生态,不想看到用户在文件夹内四处拉屎。
其实现在Android对于权限已经收的非常紧了,进一步iOS化,所以苹果这条路是正确的。
那么真的正确吗?实际上苹果管控的太严格,所以有很多答主已经给了解决方案:既然应用之间无法文件传递,那么高一级的系统可以出面做一个中转站的角色,将文件在这里进行二次中转,这样不就解决了文件交互问题吗?
其实苹果已经这样做了,早在iOS 11时就引入了文件应用作为这个中转站角色,并且还辅以官网的支持页面,帮助用户学会如何使用这种文件系统。
搜索 Apple 支持而每个App并不是可以直接拥有文件开放的权限,需要在info.plist进行额外的隐私权限设置添加。
LSSupportsOpeningDocumentsInPlace | Apple Developer Documentation那么到此为止,可以说苹果对于移动端给的文件管理系统其实并不差,而且方案很完整,那么为什么还会得到一坨粪的差评呢?
<hr/>我认为有两个方面的原因,分别是开发者与苹果自身。

  • 开发者不作为
按照苹果对于沙盒模式的设计要求,每一个应用下,有只能自己访问的一亩三分地用于存放应用产生的数据。



沙盒模式示意图

Library用于存放不给用户直接访问的数据,比如数据库等。
Temp是缓存数据,系统会清理它。
Documents则是用于存放用户自己数据的文件夹。
按照目前的构想,百度网盘应当提供完整的云盘存储下载功能以及账号验证,然后下载完成的数据则存放在百度网盘.app下的Documents中,结合系统的文件应用,我们可以很方便在文件应用中查看百度网盘下载的数据,解压更是轻松完成操作。
可是百度选择了恶心人,将绝大多数功能隐藏,然后收费。
有很多优秀的网盘供应商,他们遵循了iOS的沙盒设计模式并开放了沙盒访问权限,在文件应用中可以自由操作网盘内的文件。比如Onedrive,DropBox等
其实不光百度,很多应用都没有很好的本地数据结构设计,导致沙盒内部乱糟糟,即便是开放,也是一团麻。

  • 苹果不作为
我原本以为,苹果这么严格的控制欲,会在网盘类应用上做出更深层次的审核要求。
苹果并没有对这类应用做过多的干涉,有的仅仅是普通级别的审核,而且一般应用在沙盒内随意拉屎,苹果自己也是无所谓。
除开苹果对于这类应用约束不够外,还有什么问题呢?
回想一下具有完整文件管理器的桌面系统,Windows或者Mac而言,在你进行文件复制的时候,体验往往是这样的:

  • 选中文件进行复制
  • 打开指定文件夹
  • 粘贴,等待操作过程读条完毕
而现有方案下,iOS上的文件粘贴过程均没有进度条,甚至苹果默认你不会操作过大的文件,点击粘贴步骤不存在明显等待过程,由于iPhone没有所谓的多窗口,这样全屏显示下,文件交互过程的体验就更差了。
现在有进度感知的文件转移过程只存在于高版本iOS中的Airdrop中,它借助了ActivityKit来做到进度交互。
<hr/>现在只能寄希望于苹果能够加大力度改善这些明显的交互缺失,虽然有好的方案,但是没有人付诸行动也是白搭,另外希望开发者能够提高自己的姿势水平,别疯狂拉屎。
xjhtbyz 发表于 2023-10-6 17:05:26|来自:中国 | 显示全部楼层
考虑到问题的发布是21年。
我简单说两点:
1、iOS提供的“文件”APP足以应对大部分情况下的文件管理、处理、分享甚至解压缩需求。但是!“iOS有”和“用户会用”是两码事。很多安卓用户用惯了Android“来日我啊”的放任式文件管理机制,所以上来一问三不知就开喷,例如问题描述,明明是百度网盘开发商恶心人,却甩锅iOS;
2、基于iOS的“沙盒”机制。iOS的文件管理可以说是最好最安全的文件管理机制了。因为iOS的文件机制是你卸载APP后,跟这个APP相关的文件全都一股脑集体消失了,不像Android这种妖艳贱货,应用卸载了,相关文件夹和文件还在你手机里,那最后的结果只有是逼用户双清恢复出厂设置或者换机。(反正一般安卓手机用两三年就要换,大家都习惯了)
54sh54sh 发表于 2023-10-6 17:06:04|来自:中国 | 显示全部楼层
iOS下主要有这三个目录

  • Library 应用不希望用户直接访问的数据存这里,比如数据库。
  • Documents 应用允许用户读取的文件放这里,通过系统的“文件”应用可以直接查看这些文件,比如文档编辑软件存储用户的文档。用户可以主动的跨应用移动文件。
  • Temp 临时文件放这里,系统会主动清理这个文件夹。
这三个目录在应用之间互相独立,只能访问自己应用下的文件。
百度网盘之前体验过,很明显是百度故意恶心人,明明可以将文件下载到Documents 但是他偏偏要下载到Library。甚至连系统的分享功能都不提供(分享可以吧文件发给其他应用,比如通过微信吧文件发送给别人,而百度更希望你分享它的链接而不是文件本身。发文件就离开了百度的生态,链接的话,对方也要下载百度网盘)
早些年Android很多应用都申请所有文件访问权限,然后各种文件随便存,卸载也不清理。在公共目录放置用户追踪文件,跨应用追踪用户来投放广告。现在Android也都限制起来。虽然这个权限仍然可以申请,但是主流应用市场应该不会给上架了。
hshf007 发表于 2023-10-6 17:06:41|来自:中国 | 显示全部楼层
这是一个悖论。
百度网盘解压不方便是因为开发者在设计的时候就不想让你方便。而在安卓上方便的原因也只是因为安卓管理没那么严格。root的安卓你要是喜欢甚至可以干掉init.rc
很多时候在手机上,一些诸如文件的设计应该是对一般用户无感知的。更不应该是用户去一坨目录里面翻到文件再发给某人。
正常情况下,就应该像发照片一样,或者pages一样,修改好后导出pdf分享给微信用户。
而至于一些信息的备份,应该交给开发者决定,因为开发者最了解自己app那些东西应该备份,哪些是缓存,并不需要备份。
但是很可惜,很多时候开发者做不到这么缜密的逻辑,结果在这个环境下,相对自由的安卓反而具备了优势(安卓也有类似于ios的分享功能,甚至可以直接分享app里的任意内容暴露给其他app,但是似乎没什么人用)
当然这些也是ios沙盒机制带来的问题。(至于多份文件问题,正常情况下apfs应该会自动合并)
yuanzhu 发表于 2023-10-6 17:07:08|来自:中国 | 显示全部楼层
甘蔗没有两头甜,
你用沙盒,app就必然访问不了其他app文件。
不用沙盒,那就限制不了app过度访问文件。
这是个二选一的问题

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则