Android 程序删除的文件仍显示在Windows资源管理器中

Android 程序删除的文件仍显示在Windows资源管理器中,android,windows,file,explorer,Android,Windows,File,Explorer,我的应用程序轮询SD卡上的一个目录,查看用户通过USB连接从Windows文件资源管理器中删除的新文件的外观。当一个新文件出现时,我的应用程序会处理它,然后删除它,但该文件仍会显示在Windows文件资源管理器中。我知道该文件已不存在,因为它不再出现在DDMS文件资源管理器中,并且我的轮询器不会再次被触发。如能深入了解Android如何与Windows文件浏览器交互,将不胜感激。我尝试过使用MediaScannerConnectionClient,它有助于以编程方式创建的目录显示,但无法使文件消

我的应用程序轮询SD卡上的一个目录,查看用户通过USB连接从Windows文件资源管理器中删除的新文件的外观。当一个新文件出现时,我的应用程序会处理它,然后删除它,但该文件仍会显示在Windows文件资源管理器中。我知道该文件已不存在,因为它不再出现在DDMS文件资源管理器中,并且我的轮询器不会再次被触发。如能深入了解Android如何与Windows文件浏览器交互,将不胜感激。我尝试过使用MediaScannerConnectionClient,它有助于以编程方式创建的目录显示,但无法使文件消失

我在Acer Iconia A500上运行Android 3.2。我的电脑正在运行Windows XP。这些文件是.csv和.txt文件。我正在使用File.delete()删除它们


谢谢。

如果刷新时文件不见了,那可能是因为Windows不希望目录从下面更改,因此不会检查更改。

Android是基于Linux的操作系统,只有在关闭文件的最后一个文件句柄时才会删除文件。不过,文件名可能会更早消失


在Windows上,具有打开的文件句柄意味着文件名仍然存在。所以Windows根本不希望文件像它那样消失。

这是一个老问题,但是上面的答案对我没有什么帮助,所以我尝试了一些其他方法,下面的方法对我有效。 删除文件后,只需对要删除的文件调用
MediaScannerConnection
scanFile
方法即可:

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

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

我猜扫描仪会扫描文件位置,但找不到文件,并更新操作系统的文件索引,或者更新任何使文件对资源管理器可见的内容。

如果刷新,删除的文件仍会显示出来。如果我拔下USB,刷新Windows资源管理器,然后重新插入USB,文件仍然存在。但是,如果我软重启设备,文件就会消失。这让我觉得问题出在Android方面。