我有Nexus 4,它没有给我任何问题。但是当我在micromax画布上尝试我的代码时,它在尝试保存带有编码文件名的文件时抛出了一个IOException“无效参数”。
我正在使用此行转换文件名。
Base64.encodeToString(name.getBytes(),Base64.DEFAULT))
其中name
是文件名(例如:hello.jpg)。
基本上我想转换文件名,这样任何人都无法在SD卡中搜索它。
我认为问题是FAT文件系统支持最多42个字符的文件名长度,但它产生的文件名更长。我也尝试过URL安全,没有填充而不是Base64中的默认值。
我需要知道一些替代解决方案。
答案 0 :(得分:0)
出于解决方法的目的,尝试使用自定义类进行编码和解码
更多信息: "IllegalArgumentException: bad base-64" while trying to use Base64 on Android 1.5
答案 1 :(得分:0)
我已在应用中解决了此问题,但使用了不同的方法而不是base64
答案 2 :(得分:0)
我想这应该有用
String filename = Base64.encodeToString(url.getBytes(), Base64.URL_SAFE|Base64.NO_WRAP);
答案 3 :(得分:0)
我在apache commons中使用android.util.Base64而不是Base64类解决了这个问题(我不知道它是如何导入的)。