Java 如何使用文件名检查(内部/外部存储)中是否存在文件?
我一直在做一个项目,我将从API中获取一个文件名,并且必须检查该文件是否存在于设备中并播放它 我从API中获得了Java 如何使用文件名检查(内部/外部存储)中是否存在文件?,java,android,file,Java,Android,File,我一直在做一个项目,我将从API中获取一个文件名,并且必须检查该文件是否存在于设备中并播放它 我从API中获得了Screenshot.jpg作为文件名,并且在我的存储中存在一个同名文件 但是当我使用这段代码时,我被返回false。我也检查过其他代码 public boolean isFilePresent(String fileName) { String path = this.getFilesDir().getAbsolutePath() + "/" + fileName;
Screenshot.jpg
作为文件名,并且在我的存储中存在一个同名文件
但是当我使用这段代码时,我被返回false。我也检查过其他代码
public boolean isFilePresent(String fileName) {
String path = this.getFilesDir().getAbsolutePath() + "/" + fileName;
File file = new File(path);
return file.exists();
}
我哪里做错了?任何帮助都将不胜感激 试试这样的方法:
public boolean isFilePresent(Context context, String fileName) {
File dirFiles = context.getFilesDir();
File[] filesArray = dirFiles.listFiles();
for (File file : filesArray) {
if (file.getName().equals(fileName)) {
return true;
}
}
return false;
}
可能是您使用了
this.getFilesDir()
相反,请使用Environment.getExternalStorageDirectory().toString()
例如,它完全取决于文件所在的位置
就像我之前说的,自己调试它,用“预期的”文件路径打印(或呈现一个toast),然后验证它不存在使用
Environment.getExternalStorageDirectory()
这就是获取文件目录的方式
然后,您将在它之后添加文件路径,因此您应该执行以下操作
if(!new File(Environment.getExternalStorageDirectory().toString()+"/myFolder/"+"myFile").exist())
{
// file is not exist
}
请记住检查运行时权限,因为它是一个特殊权限可能的副本,请尝试打印路径,然后验证它是否存在(通过ssh或在文件浏览器中手动打开)。你的检查是正确的,唯一的嫌疑犯是一个错误的路径,它不是重复的!我无论如何都不知道文件的路径。在上面的链接中,文件的路径必须通过anks@GuyKhmel传递,我会检查一下,给我们发送你的文件插入码。这对我没有帮助@Thomas Mary。我再次返回false,不需要执行
toString()
。相反,可以这样做File File File=new File(Environment.getExternalStorageDirectory(),“Screenshot.jpg”)代码>路径是罪魁祸首!谢谢大家!