在我的Android应用中,用户可以下载文件。应用程序在下载完成后立即修改下载的文件。但是,只要下载的文件的名称在其中的某处包含问号,就无法访问下载的文件,因此无法修改。相关代码如下:
String pathToFile = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/" + document.getTitle();
// Example pathToFile: /storage/emulated/0/Download/Recording ? 20171227.mp3
File downloadedFile = new File(pathToFile);
if (!downloadedFile.exists()) {
// Always gets here if filename includes at least one '?'
}
我尝试添加" file://"前缀为pathToFile
,将pathToFile
转换为Uri或URI,但没有任何效果。它总是说文件不存在。任何帮助表示赞赏。
附加信息:从互联网上检索文档文件名,然后使用相同的文件名保存文档。我可以在Downloads文件夹中看到具有相同文件名的文件,但是,我无法以编程方式打开它。
答案 0 :(得分:0)
根据评论员的建议,我将#
,%
和?
替换为空字符串。以下字符不会导致问题:!@$^&*()[]{}|