Java Android上的海量/通配符文件删除

Java Android上的海量/通配符文件删除,java,android,performance,filesystems,Java,Android,Performance,Filesystems,我有一个文件夹,里面有几百个(多达6000个)小文件。我想快速删除该文件夹(或整个文件夹)中的所有文件。最好在O(1)时间内 有没有办法删除非空文件夹?或者,是否有一种方法可以在一个API调用中删除多个文件(由通配符名称指定) 我知道所有关于File.listFiles()和File.delete();实现这一功能本身很容易;我现在在看演出 编辑:也许来自C?我在项目中已经有了一个NDK库——是否有一个支持NDK的系统调用可以做到这一点?正如Commonware所说,删除/取消引用文件需要时间,

我有一个文件夹,里面有几百个(多达6000个)小文件。我想快速删除该文件夹(或整个文件夹)中的所有文件。最好在O(1)时间内

有没有办法删除非空文件夹?或者,是否有一种方法可以在一个API调用中删除多个文件(由通配符名称指定)

我知道所有关于
File.listFiles()
File.delete()
;实现这一功能本身很容易;我现在在看演出


编辑:也许来自C?我在项目中已经有了一个NDK库——是否有一个支持NDK的系统调用可以做到这一点?

正如Commonware所说,删除/取消引用文件需要时间,而且这是无法避免的,即使使用C和NDK。只需将它放到后台任务中,释放UI并希望达到最佳效果。

请记住,您想要的是不现实的。可能有比在文件上迭代更简单的API,但是无论您如何完成它,它都会很慢,因为这是我们正在讨论的闪存,以及大多数设备上的YAFFS2文件系统。Java方面的开销将在实际执行文件系统更改所需的时间内完全消失。为什么不在后台线程中完成这项工作呢?如果在内存中保留指向这些文件的文件对象或文件名的缓存是可行的,那么可以节省一些时间。但是是的,闪存等等。。。。别以为这会是个大麻烦win@CommonsWare:期望目录上的一次传递比N次传递执行得快有什么不切实际的?还有,难道连闪存都不能在几KB的块中工作吗?如果是这样,一次更改一个块中的多个/所有文件记录时,一次写出来的执行速度将比每个文件的更改/写出来的速度快。“期望一次遍历目录的执行速度比N次遍历的执行速度快有什么不切实际的呢?”--这很可能,但是,根据实施情况,您可能看不到材料节约。“一次更改一个块中的多个/所有文件记录,只进行一次写操作,其执行速度将快于对每个文件进行更改/写操作?”--这是可以想象的。我不认为你能打任何电话来达到你的目的,当然在SDK级别上我想不出有什么帮助。