public void findFolder() throws Exception { // Create a view with a page size of 10. FolderView view = new FolderView(10); // Identify the properties to return in the results set. view.setPropertySet(new PropertySet(IdOnly)); view.getPropertySet().add(FolderSchema.DisplayName); // Return only folders that contain items. SearchFilter searchFilter = new SearchFilter.IsGreaterThan(FolderSchema.TotalCount, 100); // Unlike FindItem searches, folder searches can be deep traversals. view.setTraversal(FolderTraversal.Deep); // Send the request to search the mailbox and get the results. FindFoldersResults findFolderResults = exchangeService.findFolders(WellKnownFolderName.Root, searchFilter, view); // Process each item. for (Folder myFolder : findFolderResults.getFolders()) { System.out.println(myFolder.getDisplayName()); if (myFolder.getDisplayName().equalsIgnoreCase("Other")) { FindItemsResults<Item> itemresults; int count = 0; do { // empty the deleted folder // emptyDelete(); // move items from other to deleted items itemresults = exchangeService.findItems(myFolder.getId(), new ItemView(100)); System.out.println(" Is more Avail: " + itemresults.isMoreAvailable()); for (Item item : itemresults.getItems()) { count++; System.out.println(item.getSubject()); // Item itm = Item.bind(exchangeService, itemId, PropertySet.FirstClassProperties); EmailMessage emailMessage = EmailMessage.bind(exchangeService, item.getId()); System.out.println("deleting : " + emailMessage.getSubject()); try { emailMessage.delete(DeleteMode.HardDelete); // item.delete(DeleteMode.HardDelete); // item.move(WellKnownFolderName.DeletedItems); } catch (Exception e) { e.printStackTrace(); } } } while (itemresults.isMoreAvailable()); System.out.println("Item deleted: " + count); // emptyDelete(); } } }