如何使用XPCOM中的文件

时间:2010-10-11 05:45:35

标签: c++ file components mozilla xpcom

我正在编写一个Mozilla组件来获取页面中的所有链接,并使用XPCOM和C ++将它们写入文件。 我将所有链接都变成了这样的数组:

//doc is a pointer to nsIDOMDocument
doc->GetElementsByTagName(NS_LITERAL_STRING("A"), getter_AddRefs(nodeList));
nodeList->GetLength(&nodeNumb);
href = new nsEmbedString[nodeNumb];

for(PRUnit32 i=0; i< nodeNumb; i++){
   nsCOMPtr<nsIDOMNode> aNode;
   nodeList->Item(i, getter_AddRefs(aNode));
   nsCOMPtr<nsIDOMHTMLAnchorElement> anchor = do_QueryInterface(aNode);
   if(anchor){
      (*outLinks)++;
      href[i] = anchor->GetHref(tempHref);  
   }
 } // end of for

但现在如何让他们写入文件。我真的很想知道如何使用XPCOM中的文件。有人可以给我一些提示或链接到教程吗?

2 个答案:

答案 0 :(得分:0)

您可能已经看过nsIFile,它确实提供了IsWriteable()方法,但没有write()。您需要nsILocalFile::openANSIFileDesc(),它会返回普通的FILE*

答案 1 :(得分:0)

您需要使用nsIFileOutputStream