private static boolean _find(String path) {
        File file = new File(path);

        File[] listFiles = file.listFiles(new FilenameFilter() {

            public boolean accept(File dir, String name) {
                // exclude dot files
                if (name.startsWith(".")) {
                    return false;
                }

                String absolutePath = dir.getAbsolutePath()
                                        + File.separator + name;
                if (new File(absolutePath).isFile()) {
                    return true;
                }
                else {
                    // recursive call
                    return _find(absolutePath);
                }
            }
        });

        for (File f : listFiles) {
            if (f.isFile()) {
                files.add(f);
            }
        }
        return true;
    }