每当我将文件从Firebase存储下载到Android设备时,文件的名称都会更改,即从filename.pdf更改为例如。文件名-13557732.pdf
有没有办法阻止这种变化?为什么会这样?
File directory = new File(Environment.getExternalStoragePublicDirectory
(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath());
final File localFile = File.createTempFile(filename,".pdf", directory);
mStorageReference.child(filename).getFile(localFile)
另外,有没有办法下载一个带URL的文件(我已经拥有)而不是名字?
答案 0 :(得分:0)
问:如何更改createTempFile中的默认名称?
答案: 你不能。
如果可以,你可以使createTempFile的保证无效,根据javadoc,它是:
在调用此方法之前,返回的抽象路径名表示的文件不存在,并且 在当前的虚拟机调用中,此方法及其任何变体都不会再次返回相同的抽象路径名。 如果您关心文件名,则createTempFile()可能不是创建文件的合适方法。
您可以找出系统临时文件目录是什么,并在那里创建自己的文件,但您必须自己管理文件名冲突的可能性。
使用createTempFile的另一种策略取决于您使用该文件的内容以及您关注它的名称的原因,您没有说明。
问:有没有办法使用网址下载。
答案:是的。
有不同的方法可以做到这一点。查看This Documentation
所以简单地说吧。
private FirebaseStorage storageRef = FirebaseStorage.getInstance();
storageRef.child("users/me/profile.png").getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
// Got the download URL for 'users/me/profile.png'
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Handle any errors
}
});
你可以使用,毕加索或滑翔。或者只是在处理URL时创建自己的方法。它可能会说URI但它确实是URL。