new File().exist () возвращает false для существующего файла

Я пытаюсь прочитать /data/misc/wifi/wpa_supplicant.conf на моем рутированном устройстве, этот файл доступен, и я могу без проблем скопировать его на sdcard, но новый File(). Exist () возвращает false

new File("/data/misc/wifi/wpa_supplicant.conf").exists() -> FALSE

код ниже работает нормально

new ProcessBuilder(new String[]{"su", "-c", "cp /data/misc/wifi/wpa_supplicant.conf " + Environment.getExternalStorageDirectory().getAbsolutePath() + "/wpa_supplicant.conf"}).start().waitFor();

2 ответа

Это не работает из-за безопасности файловой системы. Вы не имеете права читать или писать в этом каталоге, если вы не перемонтируете раздел. Проверьте этот вопрос: как прочитать файл wpa_supplicant.conf

Одним из решений является не использование file.exist(), а выполнение команды "ls" в каталоге WPA_supplicant и проверка, содержит ли результат процесса WPA_supplicant.

Попробуйте сначала инициализировать его и проверить его состояние, используя if заявление:

File file = new File("my_path");
if (file.exist()){
    // do something
}

И убедитесь, что путь к файлу правильный.

Другие вопросы по тегам