遍历文件夹而不接触子文件夹

时间:2019-03-18 14:56:37

标签: java exchangewebservices

您好,我想遍历Parentfolder收件箱。但是,根本不应该触摸子文件夹中的消息,以节省时间和资源。

public static void listFirstTenItems() throws Exception {
    ItemView view = new ItemView(10);
    Folder folder = Folder.bind(service,  WellKnownFolderName.Inbox);
    Folder subfolder = Folder.bind(service,  new FolderId(uniqueId));
    FindItemsResults<Item> findInbox = service.findItems(folder.getId(), view);
    FindItemsResults<Item> findSub = service.findItems(subfolder.getId(), view);

        service.loadPropertiesForItems(findInbox, PropertySet.FirstClassProperties);
        service.loadPropertiesForItems(findSub, PropertySet.FirstClassProperties);
        System.out.println("Total number of items found: " + findInbox.getTotalCount());
        for (Item item : findInbox.getItems()) {
            if (subfolder.getId() != item.getParentFolderId()) {
                System.out.println("sub==========" + item.getSubject());
            }
        }

但是在这种情况下,我确实触摸了它们。

2 个答案:

答案 0 :(得分:0)

因此,您所需要做的就是删除枚举子文件夹中项目的代码,EWS将只允许您一次枚举一个文件夹中的项目,因此请一起删除该代码,因为这对您的用例无用。询问例如

ItemView view = new ItemView(10);
Folder folder = Folder.bind(service,  WellKnownFolderName.Inbox);
Folder subfolder = Folder.bind(service,  new FolderId(uniqueId));
FindItemsResults<Item> findInbox = service.findItems(folder.getId(), view);

    service.loadPropertiesForItems(findInbox, PropertySet.FirstClassProperties);
    System.out.println("Total number of items found: " + findInbox.getTotalCount());
    for (Item item : findInbox.getItems()) {

    }

根据您的工作以及访问以下行所需的属性,这可能是必要的,也可能不是必需的

 service.loadPropertiesForItems(findInbox, PropertySet.FirstClassProperties);

答案 1 :(得分:0)

这对我有用:

Context

}

服务器正在执行工作,而不是我的应用程序。