SD-карта нового записанного файла нулевого байта до перезагрузки

На Samsung Galaxy S5 с последней версией ОС Lineage, 9 августа 2017 года (Android 7.1.2):

Я использую FileOutputStream, чтобы записать файл в директорию кэша приложения на SDCard и закрыть его. SD-карта не принята.

File file = new File(fileName);
FileOutputStream fout = new FileOutputStream(file, true); // yes, append if exists
fout.write(buf, 0, len); // wrote a few MBs here
fout.close();

Позже, когда я перечислю dir, File.length () будет 0 (ноль) вместо нескольких МБ. Я могу, однако, прочитать все байты в файле. Но размер все еще показывает как ноль.

File dir = new File(dirName);
File file = dir.listFiles()[index];
long fileSize = file.length(); // fileSize is zero until I reboot

Другие приложения, такие как Total Commander, также видят нулевой размер, но также могут копировать его в ненулевой файл.

После перезагрузки телефона файл показывает правильный размер.

Фабрично установленный файловый браузер "Файлы" всегда показывает правильный размер.

Также я пробовал на эмуляторах Android версии 6.0, 7.0, 7.1, 8.0, но все работало и размер был правильным.

Также это не происходит во внутренней памяти (или эмулируемой памяти). Только происходит на SDCard.

Не видел ошибок, исключений при чтении или записи и т. Д.

0 ответов

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