多年来,我一直使用一款名为“Fastnote”的应用程序在我的 Android 手机上做笔记。笔记会自动保存,文件名与文件的第一行相对应。
这样的自动保存非常方便,但结果是许多这些文件名包含特殊字符,例如“或\(双引号或斜线),这些字符在 Android 中有效,但在 Windows 中无效。
每次我尝试将所有笔记(70 个文件夹中约 1,800 个文件)备份到运行 Windows 10 的 PC 上时,这些文件都无法复制。我可以创建一个 zip 文件并将其复制到 PC 上 - 这样我就有了一个“备份”。但是当我尝试在 PC 上解压此文件时,名称中包含无效字符的任何文件都无法复制。
有没有办法自动删除所有文件名中的无效字符?这可能发生在
复印前已在打电话
或在通过 USB 连接进行复制操作期间
或者在 Windows 中解压时
编辑:我需要读取 PC 上的文件,所以仅仅备份是不够的。我实际上需要在我的 PC 上有一个完全可访问的备份。我认为做到这一点的唯一方法是将文件名转换为 Windows 可以处理的内容。
答案1
创建有用备份的正确方法是不要使用 Android MTP 接口访问这些文件。
相反,你应该通过以下方式在设备上创建备份adb
(需要激活开发模式和Android 调试桥在设备设置中)。此外,在 PC 端,您还必须安装带有 ADB 的最低版本的 Android SDK。
这有两个优点:
- 所有文件名都被保留 - Windows 不必处理它们,因此不会失败。
- 在设备上创建备份,然后仅下载合并的存档,速度要快得多:Windows 资源管理器使用的 MTP 协议非常慢,我预计对于如此大量的文件,在设备上创建备份的速度会快 10-20 倍。
两步变体(在设备上创建 TAR 存档 + 下载)
然后在设备上创建备份档案:
adb shell tar /sdcard/fastnode_backup.tar /sdcard/<path to fastnote files>
之后,您可以通过以下方式从设备下载创建的备份文件
adb pull /sdcard/fastnode_backup.tar
单步变体(创建 TAR 存档并将其传输到 PC)
在设备上创建备份并将创建的 tar 存档传输到 PC - 此变体不需要设备上的任何闪存):
adb exec-out 'cd /sdcard; tar -cf - <path to fastnote files in sdcard section>/' > fastnode_backup.tar
或者,在运行 Android 8 及更新版本的设备上,它fastnode_backup.tar
也应该出现在设备的 Windows 资源管理器视图中。然后,您可以下载此备份文件,其中保留了所有文件名。
如果你仍然需要从档案库中访问这些文件,请使用7-Zip在您的 PC 或其他地方提取文件。7-Zip 内置了对无效文件名字符的检测和替换功能。