安卓手机批量删除和添加.nomedia文件
2013-12-10 00:23:30 -0500
Android手机里媒体扫描往往是个耗电大户,它在后台不停的监控SD卡上所有文件夹中内容的变化,只有文件夹下有一个名为“.nomedia”的文件的文件夹才会被跳过扫描。.nomedia是一个0kb大小的空文件,所以它并不占用空间。为SD卡上所有的文件夹及子文件夹里都创建一个.nomedia文件即可达到加快开机媒体扫描速度同时大幅降低手机功耗的目的。

不过Android手机的SD卡目录结构是很繁杂很混乱的,如果一个个去创建.nomedia估计会让人吐血,写个脚本去创建?好主意,不过还有更简单的方法……欢迎光临csngmap资源分享站
http://csngmap.wodemo.com/

Android是基于Linux开发的,所以我们可以直接使用Linux里强大的find命令来实现这一目的。

注:在大多数Android手机里find命令是不存在的,需要安装了busybox后才会有。

如果我们想给SD卡里的所有目录(不包括子目录)添加.nomedia文件,很简单,一行命令:

find /sdcard/ -name '*' -type d -maxdepth 1 -exec touch {}/.nomedia \;

但更多的时候我们需要保留几个允许媒体扫描的目录用于放置音乐、视频和照片等等,那我们就需要排除一些特定的目录,没问题,照样一行命令解决,虽然这一行长了点……

find /sdcard/ \( -ipath "/sdcard/Music" -o -ipath "/sdcard/Camera" -o -ipath "/sdcard/Photo" -o -ipath "/sdcard/Video" -o -ipath "/sdcard/Pictures" -o -ipath "/sdcard/Movies" -o -ipath "/sdcard/DCIM" -o -ipath "/sdcard/Ringtones" -o -ipath "/sdcard/autoAnswerRecord" -o -ipath "/sdcard/Recorder" -o -ipath "/sdcard/Notifications" -o -ipath "/sdcard/Alarms" \) -prune -o -type d -maxdepth 1 -print -exec /system/bin/touch {}/.nomedia \;

如上例中我排除了/sdcard/Music、/sdcard/Camera、/sdcard/Photo、/sdcard/Video、/sdcard/Pictures、/sdcard/Movies、/sdcard/DCIM、/sdcard/Ringtones、/sdcard/autoAnswerRecord、/sdcard/Recorder、/sdcard/Notifications和/sdcard/Alarms这几个目录及他们的子目录,如果你有自己想排除的目录也可按上例添加。

有批量添加.nomedia的自然也有批量删除.nomedia的,还是一行命令:

find /sdcard/ -name '.nomedia' -type f -exec rm {} \;

ind真是一个很强大的命令,省去了遍历所有文件夹的痛苦。而且给大部分目录和子目录添加.nomedia文件后手机的待机时间也有明显的提升,也不枉我花了几小时折腾这命令……

但如果哪个文件夹误添加了.nomedia文件后要想恢复对这个文件夹的扫描,不仅仅是用RE删除这个.nomedia文件,还需要到设置里把媒体存储的数据清除一下然后重启手机让系统重新扫描才行。
«Newer      Older»
Comment:
Name:
Back to home 好文推荐 /cat/100385