我需要使用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)
是否依赖于名称格式?或者是什么原因?
答案 0 :(得分:0)
您无法在文件名中使用/
。它用作文件分隔符。
例如。如果SD卡中有一个名为App
的文件夹,其中有一个名为Sub
的子文件夹,则路径类似于mnt/sdcard/App/Sub
(mnt/sdcard
是例如,它不是固定的)
因此,您可以了解为什么不能在文件名中使用/
。
尝试使用_
代替/
。