Программно удаленные файлы все еще отображаются в Windows Explorer - PullRequest
2 голосов
/ 11 ноября 2011

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

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

Спасибо.

Ответы [ 3 ]

2 голосов
/ 19 мая 2016

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

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

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

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

1 голос
/ 28 апреля 2016

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

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

0 голосов
/ 11 ноября 2011

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

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