在android中设置新文件名的奇怪行为

时间:2014-06-24 10:32:40

标签: java android file

我需要使用Java在andorid中创建新文件。我是这样做的:

 public static File getAbosoluteFile(String relativePath, Context context) {
        if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
            return new File(context.getExternalFilesDir(null),  "AE "  +".jpg");
        } else {
            Toast.makeText(context, "internal", Toast.LENGTH_SHORT).show();
            return new File(context.getFilesDir(), "AE"  +".jpg");
        }
    }

但是当我这样说时 - 它工作正常,但是当我更改名称时,例如使用方法中的字符串:

 public static String getCurrentDate()
 {
     String returnDate = null;
     Calendar currentDate = Calendar.getInstance();
     int minute = currentDate.get(Calendar.MINUTE);
     String editedMinute;
     if (minute<10)
         editedMinute = "0"  + Integer.toString(minute);
     else 
         editedMinute = Integer.toString(minute);
     returnDate= (Integer.toString((currentDate.get(Calendar.MONTH) + 1)) + "/" +Integer.toString(currentDate.get(Calendar.DAY_OF_MONTH)) + "/" +Integer.toString(currentDate.get(Calendar.YEAR))  + " " +
             Integer.toString(currentDate.get(Calendar.HOUR_OF_DAY)) + ":" + editedMinute);
     return returnDate;

 }

所以,即使我使用return new File(context.getExternalFilesDir(null), "12/12/12 " +".jpg"); 该文件也没有创建。我试图在名称中使用筛选 - 思想原因在于此,但结果相同。 Java的new File(File dir, String name)是否依赖于名称格式?或者是什么原因?

1 个答案:

答案 0 :(得分:0)

您无法在文件名中使用/。它用作文件分隔符。

例如。如果SD卡中有一个名为App的文件夹,其中有一个名为Sub的子文件夹,则路径类似于mnt/sdcard/App/Submnt/sdcard是例如,它不是固定的)

因此,您可以了解为什么不能在文件名中使用/

尝试使用_代替/