您好,我想遍历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());
}
}
但是在这种情况下,我确实触摸了它们。
答案 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
}
服务器正在执行工作,而不是我的应用程序。