我有一台三星 Tab S7 用来阅读,今天我尝试将书籍传输到它。结果部分失败了,我不太明白为什么。
我将从开始这一切的例子开始(也许我遗漏了一些具体内容),然后进行一些调查。
因此情况如下:
- 我的电脑上有许多包含书籍的目录。
- 我在平板电脑的“内部存储”中有一个预先存在的“文档”文件夹
- 我在“Documents”文件夹内创建了一个“\Books\Humble Bundle”路径
- 我正在尝试将名为“Humble Book Bundle Software Development by O'Reilly\97 Things Every Programmer Should Know”的文件夹结构复制到“Humble Bundle”文件夹中
- 该文件夹包含三个文件:cover.jpg、description.txt 和“Kevlin Henney (编辑) - 每个程序员都应该知道的 97 件事_来自专家的集体智慧 (2010, O'Rei.pdf”
- 尝试复制上述内容时,Windows 会播放错误声音,但不会显示任何消息。平板电脑上现在有一个预期的文件夹结构和两个文件:cover.jpg 和 description.txt。缺少 pdf 文件。我还应该注意,如果在此文件夹之后还有其他文件夹需要复制,则不会复制它们,因为此“错误”之后该过程会停止。
现在进行一些测试:
- 最明显的想法是,存在某种文件名长度限制,但未明确说明。因此,让我们尝试从 pdf 文件名中一次删除一个字符。删除 7 个符号后,它就会通过(“Kevlin Henney(编辑)- 每个程序员都应该知道的 97 件事_来自专家的集体智慧(2010.pdf”)”)
- 现在,这是传输过程中的限制还是 Android 文件系统本身的限制?我尝试将文件复制到 \Humble Bundle\ 文件夹中,成功了,然后创建“Humble Bundle\Humble Book Bundle Software Development by O'Reilly\97 Things Every Programmer Should Know”文件夹,并使用平板电脑的文件管理器将文件移动到那里。这也成功了。所以这不是 Android 文件系统的问题。
- 这可能是 Windows 资源管理器的问题吗?我在 Total Commander 中重复了测试:结果相同。这意味着要么是 MTP 协议出了问题,要么是与之配合使用的 Windows API/驱动程序出了问题。
- 我会注意到,我在资源管理器和内置三星文件管理器中可以设置的最大文件夹名称长度是128。我不知道这是否重要,因为我的文件名不超过这个数字。
- (以下测试在 Windows 资源管理器中进行)当我尝试在“\Books\Humble Bundle”文件夹中创建一个具有最大名称长度的文件夹时,我可以按预期创建一个名称为 128 个字符的文件夹。但是,当我尝试在其中创建一个新文件夹时,我只能将名称设置为71人物。
- 如果我继续并创建一个更低的新文件夹 \Books\Humble Bundle\[128 chars]\[71 chars]\,我可以再次创建一个包含 128 个字符的文件夹,但它在平板电脑上显示为“新文件夹”。
- 如果我在平板电脑上的“新建文件夹”中创建任何新文件夹,它会显示在 PC 上,直到我退出“新建文件夹”(在 PC 上显示为 128 个字符的文件夹)。之后,如果我返回,我将无法再看到它。
- 如果我在平板电脑上重命名“新文件夹”(甚至最大限制为 128),我就可以再次访问里面的文件夹。
最糟糕的是这些数字没有任何意义(我想除了 128 以外)。Documents\Books\Humble Bundle\[128 chars]\[71 chars]\ 总共有 230 个字符(包括斜杠)。这不是您在寻找极端情况时期望看到的数字。
任何帮助都将不胜感激。我只想将我的书移动到平板电脑上,而不需要手动重命名每个文件和/或文件夹。