【问题标题】:Iterate through a specified directory in Android遍历Android中的指定目录
【发布时间】:2012-09-07 01:23:12
【问题描述】:

我正在尝试在 Android 上开发一个安全应用程序,我想遍历特定目录的文件名,以便比较目录中每个文件的哈希值。

我已经知道如何进行散列,但对于迭代部分,我对它的工作原理感到困惑。

【问题讨论】:

    标签: android file loops


    【解决方案1】:

    你的意思是要递归遍历一个目录?

    类似这样的:

        public void traverse (File dir) {
           if (dir.exists()) {
            File[] files = dir.listFiles();
            if (files != null) {
    
            for (int i = 0; i < files.length; ++i) {
                File file = files[i];
                if (file.isDirectory()) {
                    traverse(file);
                } else {
                    // do something here with the file
                }
            }
          }
         }
        } 
    

    【讨论】:

    • 在 for 循环中一遍又一遍地声明文件变量是否会降低性能?只在for循环外声明一次file变量不是更好吗?
    • @joshgoldeneagle,没有显着或完全没有性能损失,因为所有File对象都已经分配在堆上,循环内的file变量只是一个参考坐在堆栈上,从循环内外声明file变量的代码生成的字节码,我只能看到变量的堆栈槽号不同。始终在可能的最小范围内声明变量,可读性远比提高效率更重要。
    • 如何访问和遍历我的 Android 项目目录中的类?
    • 记得在for循环之前检查files!=null,否则你会得到一个NullPointerException
    猜你喜欢
    • 2013-05-02
    • 2016-01-22
    • 1970-01-01
    • 2016-07-24
    • 2011-05-23
    • 2011-08-05
    • 1970-01-01
    相关资源
    最近更新 更多