用iPad的Safari从网上下载一个PDF文件,比如Programming Your Home.pdf,选择用iBooks打开,这本书就会出现在你的iBooks书架。但如果你用iFile进入/private/var/mobile/Media/Books/Purchases,你会发现多了个文件,3CF55ED902752B18DCF7FCAAFB343AD1.pdf,其大小和内容都跟Programming Your Home.pdf一式一样。进一步看/private/var/mobile/Media/Books/Purchases/Purchases.plist,你会发现其中有这么一段 Genre Inserted-By-iBooks Name Programming Your Home.pdf Path 3CF55ED902752B18DCF7FCAAFB343AD1.pdf Persistent ID 46F2BD6BBCDEDD4D iBooks-UniqueId 3CF55ED902752B18DCF7FCAAFB343AD1 我试着把它改成 Genre Inserted-By-iBooks Name Programming Your Home.pdf Path Programming Your Home.pdf iBooks-UniqueId Programming Your Home.pdf 并删除3CF55ED902752B18DCF7FCAAFB343AD1.pdf,发现那本书还在iBooks书架里,还能正常打开。 iBooks把每一本书都存两份,实在太浪费空间了,我得向它要回一半的空间。 开始收回空间: 1. 用filezilla连上iPad,把它的/private/var/mobile/Media/Books/Purchases下的所有的PDF都下载到PC的一个临时目录,比如C:/tmp/books 2. 用putty连上iPad,把它的/private/var/mobile/Media/Books/Purchases下的所有的PDF都删除,Purchases.plist也删除。 3. 处理C:/tmp/books下的PDF文件,把形如3CF55ED902752B18DCF7FCAAFB343AD1.pdf的文件统统删除(如果文件太多,懒得手工一个一个去删,可以写个脚本)。再把PC上存在其他地方的一些自己喜欢看的PDF也拷贝到C:/tmp/books 4. 执行groovy脚本来生成一个Purchases.plist文件
def buf = ["""
Books
"""]
new File('C:/tmp/books').eachFile{
if(it.name.endsWith('.pdf'))
buf |