从复杂的URI中获取文件名

时间:2016-06-23 07:48:26

标签: java android url download filenames

我想下载一个不以文件名和扩展名结尾的文件。

例如,下面提到的uri用于下载文件。获取文件名称(包括其扩展名)的最佳方法是在下载后保存它。

  

https://pixabay.com/static/uploads/photo/2015/10/01/20/32/mushroom-967719_640.jpg?attachment

以下代码返回" mushroom-967719_640.jpg?attachment"

URL url = new URL(FILE_URI);
...........................
File downloadingFile = new File(url.getFile());
downloadingFile.getName();

我正在寻找一般解决方案,我可以获得" name.extension"从任何一种这样的uri。

1 个答案:

答案 0 :(得分:0)

从头顶写下这个:

String filename = downloadingFile.getName().substring(0, downloadingFile.getName().length - 11);

或者使其更具可读性

int filenameOriginalLength = downloadingFile.getName().length;
int excessStringLength = 11; // the string "?attachment" is 11 characters long

String filename = downloadingFile.getName().substring(0, filenameOriginalLength - excessStringLength);

基本上我们在这里做的是我们从起始字母(索引0)到downloadingFile.getName()出现之前(字符串的长度)获取?attachment的子字符串 - 附件的长度)。

可能会被一个角色关闭,您必须通过运行并调整excessStringLength来对其进行微调。