编程删除的文件仍然显示在Windows资源pipe理器中

我的应用程序轮询SD卡上的一个目录,以查看用户从Windows文件浏览器通过USB连接丢弃的新文件的外观。 当一个新的文件出现,我的应用程序处理它,然后删除它,但该文件仍然显示在Windows文件资源pipe理器。 我知道该文件已经消失,因为它不再出现在DDMS文件资源pipe理器,我的轮询不会再次触发。 任何有关Android如何与Windows文件浏览器交互的见解将不胜感激。 我试着玩MediaScannerConnectionClient,这有助于获得编程创build的目录出现,但没有任何文件消失。

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

谢谢。

Android是一个基于Linux的操作系统,只有当最后一个文件句柄关闭时才会删除文件。 尽管如此,文件可能会消失。

在Windows上,打开文件句柄意味着文件名仍然存在。 所以Windows根本不希望文件消失。

这是一个老问题,但是上面的答案对我并不是很有帮助,所以我尝试了一些其他的东西,下面的东西为我工作。 只需在删除文件后调用要删除的文件上的MediaScannerConnectionscanFile方法即可:

 File file = new File("..."); String absolutePathToFile = file.getAbsolutePath(); file.delete(); MediaScannerConnection.scanFile(context, new String[]{absolutePathToFile}, null, null); 

我猜测,扫描仪扫描文件的位置,没有找到该文件,并更新操作系统的文件索引或任何照顾使浏览器可见的文件。

如果刷新时文件已经消失,可能只是因为Windows不希望目录从其下面更换,因此不检查更改。