Не удается просмотреть зарегистрированный файл на ПК, но вижу его на моем телефоне - PullRequest
0 голосов
/ 10 мая 2018
public void appendLog(String text) {
    File logFile = new File(Environment.getExternalStorageDirectory() + "/Nexus_Uroflow_" + m_Text + ".csv");                                                       // newly changed
    if (!logFile.exists()) {
        try {
            logFile.createNewFile();
        } catch (IOException e) {
            Log.e(TAG, "Error while creating file. ", e);
            e.printStackTrace();
        }
    }
    try {
        // BufferedWriter for performance, true to set append to file flag
        BufferedWriter buf = new BufferedWriter(new FileWriter(logFile,
                true));
        buf.append(text);
        buf.newLine();
        buf.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

Привет, ребята, у меня есть приложение, которое записывает данные в CSV-файл. Однако я могу видеть это в моем телефоне, но не в моем ПК, пока я не переместил эти файлы в папку на телефоне. Может кто-нибудь объяснить мне, в чем проблема? Заранее спасибо.

Память телефона Просмотр в ПК

1 Ответ

0 голосов
/ 10 мая 2018

Насколько я знаю, папка Environment.getExternalStorageDirectory() полностью зависит от телефона. Цитата ссылка :

Примечание: не смущайтесь словом "внешний" здесь. Этот каталог может быть лучше мыслить как медиа / общее хранилище. Это файловая система, которая может содержать относительно большое количество данных, которые распределяются между все приложения (не применяются разрешения). Традиционно это SD-карта, но она также может быть реализована как встроенная память в устройство, которое отличается от защищенного внутреннего хранилища и может быть смонтирован как файловая система на компьютере.

Это означает, что каждый телефон может рассматривать определенную папку (даже во внутренней памяти) в качестве своего внешнего каталога хранения и возвращать ее в getExternalStorageDirectory(). Возможно, на вашем телефоне эта папка не там, где вы ожидаете, и поэтому вы не можете ее найти. По крайней мере, у меня была похожая проблема в одном из известных брендов.

Я лично использую папку /sdcard/ всякий раз, когда хочу отправить что-либо с помощью adb на мой телефон / эмулятор. В этом случае я почти всегда могу найти это легко. Но это неправильный подход, если вы хотите использовать его для своего приложения.

И, наконец, всегда используйте Context.getExternalStorageDirectory () вместо Environment.getExternalStorageDirectory().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...