android - Datei.exists() gibt false zurück, für vorhandene Datei (für etwas anderes als pdf)

Beide Dateien vorhanden sind, die auf der sdcard, aber aus welchem Grund auch immer exists() gibt false zurück, die die png-Datei.

//String path = "/mnt/sdcard/Android/data/com.gemoro.toffer/cache/1551619351/0/foto/-921042926.png";
  String path = "/mnt/sdcard/Android/data/com.gemoro.toffer/cache/1551619351/0/foto/-1200240592.pdf";

File file2 = new File(path);

if (null != file2)
{
    if(file2.exists())
    {
        LOG.x("file exist");
    }
    else
    {
        LOG.x("file does not exist");
    }
}

Nun habe ich Blick auf, was unter der Haube, was die Methode file.exists() nicht wirklich und das ist, was es tut:

public boolean exists()
{
    return doAccess(F_OK);
}

private boolean doAccess(int mode)
{
    try
    {
        return Libcore.os.access(path, mode);
    }
    catch (ErrnoException errnoException)
    {
        return false;
    }
}

Kann es sein, dass die Methode beendet durch das auslösen der Ausnahme und false zurückgeben?

Wenn dem so ist,

  • wie kann ich diese Arbeit machen
  • welche anderen Optionen zu überprüfen, ob eine Datei vorhanden ist, auf der sdcard sind verfügbar für die Verwendung?

Dank.

  • Vielleicht haben Sie (Java) haben nicht die Berechtigungen für den Zugriff auf Dateien?
  • Ich denke, dass ich tun: <uses-permission android:name="android.die Genehmigung.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.die Genehmigung.READ_EXTERNAL_STORAGE" />
Schreibe einen Kommentar