skyshuai1 2015-06-19 06:09 采纳率: 16.7%
浏览 1542

递归一个文件夹下的所有文件以及文件夹,造成内存溢出问题

我需要递归一个文件夹下所有的文件并进行操纵,文件夹下也有文件夹,我用一个list存储递归得到的所有文件可能会造成溢出。我需要当此list为10000时候执行,然后清空list,请问如何实现。代码如下:
static void getFiles(String filePath){
File root = new File(filePath);
File[] files = root.listFiles();
for(File file:files){
if(file.isDirectory()){//是否为文件夹
getFiles(file.getAbsolutePath());
filelist.add(file.getAbsolutePath());//filelist是ArrayList,用来存储所有文件路径;
}else{
//对文件的操作;

请问我改如何修改才能让程序在flielist大小每当10000执行一次,然后在将其清空,继续执行,不至于让filelist太大从而解决内存溢出问题。本人线程比较菜,求大神帮忙。最好能在此代码上修改。

  • 写回答

1条回答 默认 最新

  • 艺匠之美 2015-06-19 06:55
    关注

    你这个代码有问题,当你进行递归时,目录下无文件,会出现空指针异常的。
    for前面加个
    if(files!=null&&files.length>0){

    }

    评论

报告相同问题?

悬赏问题

  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题