Commons vfs findFiles воображаемый файл - PullRequest
3 голосов
/ 27 октября 2011

В моей работе с кварцем я хочу читать csv-файлы из каталога, используя commons-vfs.

try {
    FileSystemManager fsManager = VFS.getManager();
    final FileObject fileObject = fsManager.resolveFile(getJob().getDirectory());
    if(fileObject.getType() != FileType.FOLDER) {
        throw new FileTransferException("Invalid directory : " + getJob().getDirectory());
    }

    final FileFilter fileFilter = new FileFilter() {

        @Override
        public boolean accept(FileSelectInfo fileInfo) {
            try {
                boolean isCSV = fileInfo.getFile().getName().getBaseName().endsWith(".csv");
                logger.debug("TEST : {} {} " + fileInfo.getFile().getName(), fileInfo.getFile().getType() , isCSV);
                long fileTime  = fileInfo.getFile().getContent().getLastModifiedTime();
                return isCSV;
            } catch (FileSystemException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                return false;
            }
        }
    }; 

    FileSelector selector = new FileFilterSelector(fileFilter);
    FileObject[] findFiles = fileObject.findFiles(selector);
    for (int i = 0; i < findFiles.length; i++) {
        logger.info("Found {} : {}", i, findFiles[i]);
    }
    } catch(Exception e) {
        throw new JobExecutionException(e);
    }

В папке есть несколько файлов, но она выдает исключение, когда я хочу проверить дату файла и отфильтровать слишком старуюфайлы.Он также показывает странный «мнимый» тип файла - это настоящий файл, сам только что его нашел:

18:13:27.807 DEBUG [AE-Scheduler_Worker-2][CsvImportJob]
TEST : imaginary false file:///e:/some_directory /not_csv.txt
org.apache.commons.vfs2.FileSystemException: Could not determine the last   modified timestamp of "file:///e:/some_directory /not_csv.txt" because it does not exist.
    at org.apache.commons.vfs2.provider.DefaultFileContent.getLastModifiedTime(DefaultFileContent.java:165) 

Что я делаю не так?

1 Ответ

1 голос
/ 03 ноября 2011

Я нашел причину ошибки - ненужный пробел в конце имени каталога ....

...