использование DirectoryWalker

В моем случае я решил проблему, установив SQL Server 2012 Developer Edition, когда я ранее установил SQL Server Express 2012 (x64). Кажется, это дало мне недостающую зависимость.

8
задан Jason S 7 July 2009 в 00:40
поделиться

2 ответа

Похоже, подкласс должен предоставлять открытый метод, вызывающий walk ().

7
ответ дан 5 December 2019 в 08:54
поделиться

Просто чтобы расширить этот ответ, так как я сначала был озадачен тем, как использовать класс, и этот вопрос возник в Google, когда я смотрел по сторонам. Это просто пример того, как я его использовал (за исключением некоторых вещей):

public class FindConfigFilesDirectoryWalker extends DirectoryWalker {
    private static String rootFolder = "/xml_files";
    private Logger log = Logger.getLogger(getClass());

    private static IOFileFilter filter = FileFilterUtils.andFileFilter(FileFilterUtils.fileFileFilter(),
            FileFilterUtils.suffixFileFilter("xml"));

    public FeedFileDirectoryWalker() {
        super(filter, -1);
    }

    @SuppressWarnings("unchecked")
    @Override
    protected void handleFile(final File file, final int depth, final Collection results) throws IOException {
        log.debug("Found file: " + file.getAbsolutePath());
        results.add(file);
    }

    public List<File> getFiles() {
        List<File> files = new ArrayList<File>();

        URL url = getClass().getResource(rootFolder);

        if (url == null) {
            log.warn("Unable to find root folder of configuration files!");
            return files;
        }

        File directory = new File(url.getFile());

        try {
            walk(directory, files);
        }
        catch (IOException e) {
            log.error("Problem finding configuration files!", e);
        }

        return files;
    }
}

А затем вы просто вызываете его через созданный вами общедоступный метод, передавая любые аргументы, которые вам могут понадобиться:

List<File> files = new FindConfigFilesDirectoryWalker().getFiles();
11
ответ дан 5 December 2019 в 08:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: