Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2592|回复: 1
打印 上一主题 下一主题

folder database hd等相关关系

[复制链接]

388

主题

602

帖子

2218

积分

金牌会员

Rank: 6Rank: 6

积分
2218
跳转到指定楼层
楼主
发表于 2015-11-12 23:24:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. emptyJunk: function ftc_emptyJunk(aFolder) {
  2.     const Ci = Components.interfaces;
  3.     let folder = aFolder || gFolderTreeView.getSelectedFolders()[0];

  4.     if (!folder || !folder.getFlag(nsMsgFolderFlags.Junk))
  5.       return;

  6.     if (!this._checkConfirmationPrompt("emptyJunk", folder))
  7.       return;

  8.     // Delete any subfolders this folder might have
  9.     let iter = folder.subFolders;
  10.     while (iter.hasMoreElements())
  11.       folder.propagateDelete(iter.getNext(), true, msgWindow);

  12.     // Now delete the messages
  13.     iter = fixIterator(folder.messages);
  14.     let messages = [m for (m in iter)];
  15.     let children = toXPCOMArray(messages, Ci.nsIMutableArray);
  16.     folder.deleteMessages(children, msgWindow, true, false, null, false);
  17.   },
复制代码
回复

使用道具 举报

388

主题

602

帖子

2218

积分

金牌会员

Rank: 6Rank: 6

积分
2218
沙发
 楼主| 发表于 2015-12-31 14:22:18 | 只看该作者
  1. /*
  2.     let accountManager = Cc["@mozilla.org/messenger/account-manager;1"]
  3.                         .getService(Ci.nsIMsgAccountManager);   
  4.     let accounts = accountManager.accounts;
  5.     console.log("accounts.length:" + accounts.length);
  6.     for (let i = 0; i < accounts.length; i++) {
  7.       let account = accounts.queryElementAt(i, Ci.nsIMsgAccount);
  8.       let allfolders = account.incomingServer.rootFolder.subFolders;
  9.       while(allfolders.hasMoreElements())
  10.       {
  11.         let folder = allfolders.getNext();        
  12.         folder = folder.QueryInterface(Ci.nsIMsgFolder);
  13.         console.log(folder.folderURL)
  14.         let folderMsgHdrs = [];
  15.         let enumerator = folder.msgDatabase.EnumerateMessages();
  16.         while (enumerator.hasMoreElements())
  17.         {
  18.           let hdr = enumerator.getNext();
  19.           folderMsgHdrs.push(hdr);
  20.         }
  21.         //console.log("folderMsgHdrs.length:"+folderMsgHdrs.length)
  22.         if( folderMsgHdrs.length > 0 ){
  23.           let array = toXPCOMArray(folderMsgHdrs, Ci.nsIMutableArray);
  24.           //这种删除方法也没把数据库里的给删除
  25.           //folder.deleteMessages(array, null,
  26.           //                  true, // delete storage
  27.           //                    false,//is move?
  28.           //                   null, //asyncCopyListener
  29.           //                    false // do not allow undo, currently leaks
  30.           //                   );
  31.           //Gloda.msgsDeleted(folderMsgHdrs);
  32.           //GlodaDatastore.markMessagesDeletedByIDs(folderMsgHdrs);
  33.           //for( let itemhdr of folderMsgHdrs ){
  34.           //  yield* deleteMsgIndexerByHeader(itemhdr);
  35.           //}
  36.          
  37.         }
  38.         
  39.       }
  40.     }
  41.    
  42.     */
  43.    
  44.     /*
  45.     let accountManager = Cc["@mozilla.org/messenger/account-manager;1"]
  46.                         .getService(Ci.nsIMsgAccountManager);   
  47.     let accounts = accountManager.accounts;
  48.     console.log("accounts.length:" + accounts.length);
  49.     for (let i = 0; i < accounts.length; i++) {
  50.       let account = accounts.queryElementAt(i, Ci.nsIMsgAccount);
  51.       MailServices.accounts.removeAccount(account);   //数据库中依然存在
  52.     }
  53.     */
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-11-23 13:48 , Processed in 0.056712 second(s), 18 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表