我正在创建New TmepFile,并希望制作格式“yyyyMMdd”,但它直到createTempFile才有效。
private File createFile() throws IOException{
String tempName = new SimpleDateFormat("yyyyMMdd").format(new Date());
File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
Log.d("e",tempName);
File image = File.createTempFile(
tempName,
".png",
storageDir
);
Log.d("e",image.getName());
mCurrentPhotoPath = image.getAbsolutePath();
return image;
}
日志
D/e: 20190402
D/e: 201904021419980777854538831.png
简单的回答,你不能改变使用createTempFile
创建的文件的名称。它具有每个文件的默认唯一名称。
似乎是createTempFile
方法本身的一部分。我正在查看文档并且它说“一旦进行了这些调整,就会通过连接前缀,五个或更多内部生成的字符以及后缀来生成新文件的名称。”它似乎在最后生成随机字符以保证唯一性。
你可以做什么我猜是将文件对象存储在你可以在你需要的地方存储的地方,只需要获得前6个字符,这些字符应该是日期,或者你可以创建一个普通的文件。也许你可以在创建它之后重命名临时文件,只使用前6个字符?不完全确定
File.createTempFile
允许您为创建的文件指定前缀和后缀,但是您没有指定全名,因为它的名称中包含随机部分。如果你想在temp-directory中有一个完全具有该名称的文件,你需要使用这样的东西:
File image = new File(
System.getProperty("java.io.tmpdir") ,
tempName +
".png"
);