2021-10-24

记一次大量文件中出现限定字符“|”的解决方案

一、前言

某一天,我将手机(安卓11)接入电脑,开启文件传输功能,想要在电脑上整理文件,这样会比手机快得多,但我在移动某些文件的时候,发现完全无效,甚至没反应,然后我又用手机进行同样的操作,结果就出现"open failed:EPERM(Operation not permitted)",查了好一会没结果,网上说的都不是一个事。
手机无法移动文件,出现open failed:EPERM(Operation not permitted)

二、解决历程

(一)问题定位

经过一段时间的摸索,我发现,有些文件是能够正常移动和定位的,相比之下,文件名好像是有差异的,仔细一看,得了,居然不能移动的哪些文件文件名中都带有特殊字符“|”,在我影响中,这不是不能出现在文件名中吗?“|”更是作为管道符存在,是用于连接两个文件/命令的。
知道了问题所在,我手动重命名了一下文件,将文件名中的“|”字符给删除掉,再进行文件移动操作,这下就正常了。

(二)解决方案

但是,我粗略估计了一下,收到影响的文件至少几百,要是手动重命名那得到什么时候啊,不行,必须得批量解决才行。

我找了一些批量重命名软件,像太极重命名、Advanced Renamer等优秀的软件都试过了,很尴尬的是,因为权限问题,这些软件是没办法访问和操作到手机文件目录的。

至于手机上用重命名软件,目前我能找到的,似乎都不太成熟,一些简单的要求都无法实现。

接着,我尝试使用批处理脚本(.bat)来进行文件名修改,但似乎还是因为特殊字符的关系,没能得偿所愿。

然后,一次无意的操作,我将带有特殊字符的文件复制到电脑上来,想要使用电脑上的批量重命名软件进行操作。神奇的事情就发生了,复制到电脑上来之后,文件名中的“|”就没了,自动被消除了,移动也是如此(手机目录下的移动依然不行)。

最后,我将所有需要操作的文件都复制/移动电脑中,整理好后备份到云端,以方便手机查看。

(三)额外情况

特殊字符影响到的并非只有文件,包括个别文件夹,名称中带有“:”(冒号)的,这种甚至都无法复制到电脑,只能在手机目录中的进行修改;有些文件、文件名是以“.”(点)结尾的,这也不符合win的命名规则,也是不能直接复制到电脑上的,都要单独处理。

三、结语

这次事件处理起来并不轻松,文件很多,且很大,且因为部分文件目录也受到了其他特殊字符的影响,导致复制的过程中断了好几次,很是恼火。
事后我又查询了不少资料,发现我遇到的问题可能还是由于linux、Android、windows的底层逻辑有差异吧,毕竟windows上带有特定特殊字符的文件夹/文件都不会出现,而在Android上却存在,存在不说,而且Android自己都把对应文件当作错误的来处理,极大影响了用户的体验。故记录于此,希望帮助其他遇到类似困难的同学。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值