我想下载一个不以文件名和扩展名结尾的文件。
例如,下面提到的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。
答案 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
来对其进行微调。