我正在创建新的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
答案 0 :(得分:0)
简单的答案,您无法更改使用createTempFile
创建的文件的名称。每个文件都有一个默认的唯一名称。
答案 1 :(得分:0)
似乎是createTempFile
方法本身的一部分。我正在看文档,它说:“一旦进行了这些调整,将通过连接前缀,五个或更多内部生成的字符以及后缀来生成新文件的名称。”
看起来它会在最后生成随机字符以确保唯一性。
我想您可以将文件对象存储在您可以访问它的位置,只需获取前6个字符(应为日期)即可,也可以只创建一个普通文件。还有可能也许您可以在创建临时文件后仅重命名前6个字符就对其重命名?不太确定
答案 2 :(得分:0)
File.createTempFile
可让您为创建的文件指定前缀和后缀,但由于其名称中包含随机部分,因此您无需指定全名。如果要在temp目录中有一个确切名称的文件,则需要使用类似以下内容的文件:
File image = new File(
System.getProperty("java.io.tmpdir") ,
tempName +
".png"
);