firemail

标题: folder database hd等相关关系 [打印本页]

作者: hechengjin    时间: 2015-11-12 23:24
标题: folder database hd等相关关系
  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.   },
复制代码

作者: hechengjin    时间: 2015-12-31 14:22
  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.     */
复制代码





欢迎光临 firemail (http://firemail.wang:8088/) Powered by Discuz! X3