LOST.DIR проблемы с флешкой

Я попытаюсь подытожить это кратко. У меня есть приложение, которое может синхронизировать свои данные с флешкой, подключенной через адаптер OTG. Проблема в следующем: некоторые файлы окажутся в папке с именем LOST.DIR в корне флешки. Все они имеют размер ровно 4 КБ и имеют случайные трехзначные имена без расширения файла. Я знаю, что они содержат данные из моего приложения, потому что, если я открою их в блокноте, я увижу данные, которые выводит мое приложение. Однако эти данные иногда смешиваются со случайными символами. Основываясь на моих элементарных знаниях о файловых системах, одинаковый размер файлов и случайный контент заставляет меня думать, что это блоки памяти, помеченные Android как плохие и перемещенные в эту папку.

Есть одно предостережение: я рассматриваю флэш-накопители так, как будто они поддерживают горячую замену, как это было бы на устройстве Windows. Я понимаю, что, возможно, неправильно думать о них так. Чтобы обойти это, я вызываю команду sync через su после того, как закончу чтение и запись на флешку и с нее. Насколько я понимаю, это должно синхронизировать буфер/кеш в оперативной памяти с физическим флэш-накопителем, что сделает его безопасным для удаления. Это может быть ошибочным предположением.

Итак, мой вопрос двоякий:

  1. Что заставляет данные случайным образом исчезать и перемещаться в LOST.DIR?
  2. Безопасно ли рассматривать флэш-накопители как устройства с возможностью горячей замены? Если нет, то есть ли способ заставить их вести себя так?

Если мой вопрос недостаточно ясен или вам нужна дополнительная информация, я могу прояснить для вас некоторые моменты. Спасибо.


person Nathan Walters    schedule 22.03.2014    source источник


Ответы (1)


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

person ctrl    schedule 22.03.2014