无法打开名称中包含问号的文件

时间:2018-02-20 14:14:19

标签: java android file

在我的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文件夹中看到具有相同文件名的文件,但是,我无法以编程方式打开它。

1 个答案:

答案 0 :(得分:0)

根据评论员的建议,我将#%?替换为空字符串。以下字符不会导致问题:!@$^&*()[]{}|