0

再帰関数を使用して /mnt/sdcard の下のすべてのパスをスキャンし、すべてのファイルが .txt で終わることを確認しましたが、実際の Android フォンで使用すると非常に遅いことがわかりました。スキャン プロセスを高速化する Buffered Input Stream のようなものはありますか?

                    private txtFileFilter txtff = new txtFileFilter();

                    private void scanAllTxtFiles(File location, ArrayList<String> list) {

                        File[] files = location.listFiles(txtff);
                        if (files != null) {
                            for (File f : files) {
                                if (f.isDirectory()) {
                                    scanAllTxtFiles(f, list);
                                } else if (f.isFile()) {
                                    list.add(f.getAbsolutePath().substring(
                                            externalPathLength));
                                }
                            }
                        }
                    }

                }

                private class txtFileFilter implements FileFilter {

                    @Override
                    public boolean accept(File pathname) {
                        // TODO Auto-generated method stub
                        if (pathname.isFile()
                                && pathname.getName().length() >= 4
                                && pathname.getName()
                                        .substring(pathname.getName().length() - 4)
                                        .equals(".txt")) {
                            return true;
                        } else if (pathname.isDirectory()) {
                            return true;
                        }
                        return false;
                    }

                }
4

0 に答える 0