如何从Android 6自动备份中排除整个目录?

时间:2016-07-28 09:42:22

标签: android backup android-6.0-marshmallow

我想配置Android 6自动备份功能以排除整个目录中的所有文件(包括“文件”和“外部”),还应排除某些特定的扩展名。像和* .tn-png这样的通配符是否适用于路径值? 我无法明确定义所有文件,因为它们是在运行时创建的。

android:fullBackupContent="@xml/mybackupscheme"

例如mybackupscheme就是这样的:

<?xml version="1.0" encoding="utf-8"?>
<full-backup-content>
    <exclude domain="file" path="device-links.xml"/>
    <exclude domain="file" path="*.tn-png"/>
    <exclude domain="file" path="links/*.*"/>
    <exclude domain="external" path="external-links/*.*" />
</full-backup-content>

提前致谢,

1 个答案:

答案 0 :(得分:1)

Autobahn docs说:

  

path:指定要包含在备份中或从备份中排除的文件或文件夹。   请注意:此属性不支持通配符或正则表达式语法。

所以你不能使用通配符。

但您可以使用exclude排除整个目录

  

<exclude> - 指定在备份期间要排除的文件或文件夹。

如果您的文件结构非常复杂,则可以实现自己的BackupAgent和覆盖official documentation方法。

  

您无法轻松表达要备份的文件集   XML规则。在这些极少数情况下,您可以实现BackupAgent   覆盖onFullBackup(FullBackupDataOutput)来存储你想要的东西。   要保留系统的默认实现,请调用相应的   使用super.onFullBackup()的超类上的方法。