Программно удаленные файлы по-прежнему отображаются в проводнике Windows

#android #windows #file #explorer

#Android #Windows #файл #проводник

Вопрос:

Мое приложение опрашивает каталог на SD-карте на предмет появления новых файлов, которые были сброшены туда пользователем из проводника Windows через USB-соединение. Когда появляется новый файл, мое приложение обрабатывает его, а затем удаляет, однако файл по-прежнему отображается в проводнике Windows. Я знаю, что файл исчез, потому что он больше не отображается в проводнике файлов DDMS, и мой опросник больше не запускается. Будем признательны за любую информацию о том, как Android взаимодействует с Windows file Explorer. Я попытался поиграть с MediaScannerConnectionClient, который помогает отображать программно созданные каталоги, но ничего не делает для исчезновения файлов.

Я использую Android 3.2 на Acer Iconia A500. Мой компьютер работает под управлением Windows XP. Файлы представляют собой файлы .csv и .txt. Я использую File.delete () для их удаления.

Спасибо.

Ответ №1:

Это старая проблема, но приведенные выше ответы мне не очень помогли, поэтому я попробовал некоторые другие вещи, и у меня сработало следующее. Просто вызовите scanFile метод MediaScannerConnection для удаляемого файла после его удаления:

 File file = new File("...");
String absolutePathToFile = file.getAbsolutePath();
file.delete();

MediaScannerConnection.scanFile(context, new String[]{absolutePathToFile}, null, null);
  

Я предполагаю, что сканер сканирует местоположение файла, не находит файл и обновляет индекс файла ОС или что-то еще, что делает файлы видимыми для проводника.

Ответ №2:

Android, будучи ОС на базе Linux, удалит файл только тогда, когда будет закрыт последний дескриптор файла для него. Имя файла может исчезнуть раньше, хотя.

В Windows наличие дескриптора открытого файла означает, что имя файла все еще существует. Таким образом, Windows просто не ожидает, что файл исчезнет, как это происходит.

Ответ №3:

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

Комментарии:

1. Если я обновлю, удаленные файлы все еще отображаются. Если я отключу USB, обновлю Windows Explorer, а затем снова подключу USB, файлы все еще будут там. Однако, если я мягко перезагружаю устройство, файлы исчезают. Это заставляет меня думать, что проблема на стороне Android.