@Override
    public boolean find(final Path file, final ListProgressListener listener) throws BackgroundException {
        try {
            new DriveAttributesFinderFeature(session, fileid).find(file, listener);
            return true;
        }
        catch(NotfoundException e) {
            return false;
        }
    }
@Test
    public void testFind() throws Exception {
        final DriveFileIdProvider fileid = new DriveFileIdProvider(session);
        final Path folder = new DriveDirectoryFeature(session, fileid).mkdir(
                new Path(DriveHomeFinderService.MYDRIVE_FOLDER, UUID.randomUUID().toString(), EnumSet.of(Path.Type.directory)), new TransferStatus());
        final Path file = new DriveTouchFeature(session, fileid).touch(
                new Path(folder, new AlphanumericRandomStringService().random(), EnumSet.of(Path.Type.file)), new TransferStatus());
        final String id = file.attributes().getFileId();
        assertTrue(new DriveFindFeature(session, fileid).find(file));
        new DriveTrashFeature(session, fileid).delete(Collections.singletonList(file), new DisabledLoginCallback(), new Delete.DisabledCallback());
        assertFalse(new DefaultFindFeature(session).find(file));
        assertFalse(new DriveFindFeature(session, fileid).find(file));
        // When searching with version "2", find trashed file
        final Path trashed = new DriveListService(session, fileid).list(folder, new DisabledListProgressListener()).find(new SimplePathPredicate(file));
        assertNotNull(trashed);
        assertEquals(id, trashed.attributes().getFileId());
        assertTrue(new DefaultFindFeature(session).find(trashed));
        assertTrue(new DriveFindFeature(session, fileid).find(trashed));
        // Recreate file
        final Path version2 = new DriveTouchFeature(session, fileid).touch(file, new TransferStatus());
        assertTrue(new DefaultFindFeature(session).find(version2));
        assertTrue(new DriveFindFeature(session, fileid).find(version2));
        assertEquals(version2.attributes(), new DriveAttributesFinderFeature(session, fileid).find(version2));
        new DriveDeleteFeature(session, fileid).delete(Arrays.asList(version2, folder), new DisabledLoginCallback(), new Delete.DisabledCallback());
    }