private void crawl(final File rootFile)
    {
        if(rootFile == null)
            return;
        if(rootFile.isFile())
            mThreadPool.execute(new Runnable()
            {
                @Override
                public void run()
                {
                    mFileAction.actOnFile(rootFile);
                }
            });
        else if(rootFile.isDirectory())
        {
            File[] files = rootFile.listFiles();
            if(files == null)
                return;
            for(File curFile : files)
                crawl(curFile);
        }
    }