@Override
    public boolean accept(final Path file, final Local local, final TransferStatus parent) throws BackgroundException {
        if(local.isFile()) {
            if(local.exists()) {
                if(log.isInfoEnabled()) {
                    log.info(String.format("Skip file %s", file));
                }
                return false;
            }
        }
        return super.accept(file, local, parent);
    }
@Test
    public void testAcceptDirectory() throws Exception {
        SkipFilter f = new SkipFilter(new DisabledDownloadSymlinkResolver(), new NullSession(new Host(new TestProtocol())));
        assertTrue(f.accept(new Path("a", EnumSet.of(Path.Type.directory)) {
                            }, new NullLocal("a", "b") {
                                @Override
                                public boolean isFile() {
                                    return false;
                                }

                                @Override
                                public boolean isDirectory() {
                                    return true;
                                }

                                @Override
                                public boolean exists() {
                                    return true;
                                }
                            }, new TransferStatus().exists(true)
                )
        );
    }