我正在创建新的特梅普文件,并希望使格式“yyyyMDd”,但它的工作直到创建临时文件。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: 20190402D/e: 201904021419980777854538831.png
3 回答

慕码人8056858
TA贡献1803条经验 获得超6个赞
File.createTempFile允许您为创建的文件指定前缀和后缀,但不指定全名,因为它的名称中有一个随机部分。如果你想在临时目录中有一个具有该名称的文件,你需要使用这样的东西:
File image = new File(
System.getProperty("java.io.tmpdir") ,
tempName +
".png"
);

慕容708150
TA贡献1831条经验 获得超4个赞
简单的答案,您无法更改使用 创建的文件的名称。它具有每个文件的默认唯一名称。createTempFile
在调用此方法之前,由返回的抽象路径名表示的文件不存在,并且
此方法及其任何变体都不会在虚拟机的当前调用中再次返回相同的抽象路径名。

呼唤远方
TA贡献1856条经验 获得超11个赞
似乎是方法本身的一部分。我正在查看文档,它说“一旦进行了这些调整,新文件的名称将通过连接前缀,五个或更多内部生成的字符和后缀来生成。它似乎在最后生成随机字符以保证唯一性。createTempFile
我想你可以做的是将文件对象存储在你需要的地方,在那里你可以访问它,只需获取前6个字符,这应该是日期,或者你可以创建一个普通文件。也有可能,也许你可以在创建临时文件后重命名它,只使用前6个字符?不完全确定
添加回答
举报
0/150
提交
取消