java - Android Java 文件创建 java.io.FileNotFoundException(文件名太长)

标签 java android

我在 Android Studio 中有一个小的 Java 代码。我在模拟器(Android 7.1.1 API 25)中运行它。

如何验证文件名和文件名长度?

我应该检查路径名的长度还是仅检查文件名的长度!

我发现 Android 支持 255 个字符作为文件名。

孟加拉语文件名文本 (UNICODE UTF-8)

File downloadFile = new File("/storage/emulated/0/MyDownload/আমার সোনার বাংলা আমি তোমায় ভালোবাসি চিরদিন তোমার আকাশ তোমার বাতাস আমার প্রাণে বাজায় বাঁশি ও মা ফাগুনে তোর.mp4");
FileOutputStream outputStream = new FileOutputStream(downloadFile, true);
downloadFile.toString().length() // OUTPUT: 142

错误: java.io.FileNotFoundException:/storage/emulated/0/MyDownload/আমার সোনার বাংলা আমি তোমায় ভালো বাসি চিরদিন তোমার আকাশ তোমার বাতাস আমার প্রাণে বাজায়বাঁশিওমাফাগুনেতোর.mp4(文件名字太长)

最佳答案

String name = "আমার-সোনার-বাংলা-আমি-তোমায়-ভালোবাসি-চিরদিন-তোমার-আকাশ-তোমার-বাতাস-আমার-প্রাণে-বাজায়-বাঁশি-ও-মা-ফাগুনে-তোর.mp4";
final byte[] utf8Bytes = name.getBytes(StandardCharsets.UTF_8);
if(utf8Bytes.length > 255) {
    name = new String(Arrays.copyOfRange(utf8Bytes, 0, 255), StandardCharsets.UTF_8);
}
System.out.println(name);

关于java - Android Java 文件创建 java.io.FileNotFoundException(文件名太长),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73838216/

相关文章:

java - 使用 spring jee-jndi 查找注入(inject)的 JMS XA 连接工厂的行为与 Weblogic 12c 上的 @Resource 注入(inject)不同

java - 通过套接字接收文件后未收到任何进一步的消息

Android Tapjoy Offerwall 从不回调

android - adb 卸载失败 失败 [DE​​LETE_FAILED_OWNER_BLOCKED]

android - 谷歌驱动器修改日期给出错误的时间

java检查csv文件中给定的字符串

java - 当我点击 map 上 3 个制造商中的 1 个时如何从 Firebase 获取数据

java - 测试 Selenium ,测试问题

android - 是否可以将 ListView 滚动到列表行的子元素?

android - 按下自定义键盘的shift按钮时如何输入大写字母?