如何将具有特殊字符的文件传输到我的Android SD卡?

时间:2015-03-31 11:05:21

标签: android filesystems sd-card file-copying

最近我在使用iPhone特殊字符的Android SD卡中创建文件时遇到了麻烦。

我的设备:Galaxy Note4 KitKat。 我的电脑:Window7

我从iPhone到我的电脑上有一个文件。 此文件包含表情符号(http://chars.suikawiki.org/string?s=%F0%9F%90%8D) 我可以从我的PC将此文件传输到内部SD卡但我无法转移到可移动SD卡。

即使我也无法将复制的文件从内部传输到可移动文件。(我使用FileOutputStream,File.createNewFile进行复制)

我怀疑是SDcard的文件系统并尝试过其他FAT16(2GB sandisk Sdcard),exFAT(64GB三星SD卡)。

但我都失败了。

我试图找到文件系统规范,但我没有发现任何相关内容。 我还怀疑保留文件标题字符,但它没有关系。

简而言之,

  1. 为什么无法将此文件传输到可移动SD卡?

  2. 如何在没有重命名的情况下以编程方式将此文件复制到SD卡?

  3. =====添加片段=====

    下面的特殊字符似乎是Android设备文件浏览器中的表情符号,但在我的电脑中,它看起来是序数特殊字符。

    new File(" /storage/emulated/0/.txt")。createNewFile(); //内部存储器。工作。

    new File(" /storage/extSdCard/.txt")。createNewFile(); //可移动存储。不工作

1 个答案:

答案 0 :(得分:0)

我偶然发现了一个类似的问题,即保存到SD。这似乎是一个安全问题。您现在需要使用存储访问框架See Here

您可以使用分配给您的应用程序的文件,而不必使用存储访问框架。访问Applications数据目录的一种方法是使用:

ContextCompat.getExternalFilesDirs(context, type)

哪个会向后兼容。或者您可以将以下内容用于Lollipop用户

Context.getExternalMediaDirs()

每种方法都会为您提供2个目录。 1表示内部存储器,1表示SD(如果设备有插槽)。从这里,您可以保存所有特定于应用程序的数据。

警告:如果用户卸载了您的应用程序,这些数据将被删除。

希望这有帮助!