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
}
И убедитесь, что путь к файлу правильный.