【问题标题】:Filename chars cause opening failed: EINVAL (Invalid argument)文件名字符导致打开失败:EINVAL(无效参数)
【发布时间】:2013-12-01 09:55:33
【问题描述】:

我想创建一个文件名采用以下格式的文件:DAY-MONTH-YEAR--HOUR:MINUTE 但是当我使用-- 或/和: 时,我收到open failed: EINVAL 异常。我试图逃避这些字符,但没有快乐。是否有任何禁止的文件名字符列表?

   String time = String.valueOf(c.get(Calendar.DAY_OF_MONTH)) + "-" + String.valueOf(c.get(Calendar.MONTH) + 1) + "-" +
               String.valueOf(c.get(Calendar.YEAR)) + "--" + String.valueOf(c.get(Calendar.HOUR)) + "\\:" + String.valueOf(c.get(Calendar.MINUTE));

 bufOutstream = new BufferedOutputStream(new FileOutputStream(new File(env.getExternalStorageDirectory()+"/myapp/"+time+"."+fExtension)));

日志猫:

12-01 10:34:01.181  25839-26542/com.example.app W/System.err﹕ Caught IOException: /storage/sdcard0/myapp/1-12-2013--10\:34.aac: open failed: EINVAL (Invalid argument)

【问题讨论】:

    标签: android


    【解决方案1】:

    请参阅此页面,您将找到完整列表。

    http://en.wikipedia.org/wiki/Comparison_of_file_systems

    虽然您的 sdcard 可能是内部的并安装为 FUSE,但它可能仍然是 FAT32 文件系统。 FAT32 的有效字符是(根据页面):

    除值 0-31、127 (DEL) 和:" * / : < > ? \ | + , . ; = [](小写 a-z 存储为 A-Z)之外的任何字节。使用 VFAT LFN 除了NUL之外的任何Unicode

    【讨论】:

      猜你喜欢
      • 2019-08-10
      • 1970-01-01
      • 1970-01-01
      • 2012-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-15
      相关资源
      最近更新 更多