0

我正在编写一个 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 中使用文件。有人可以给我一些提示或教程链接吗?

4

2 回答 2

0

您需要使用nsIFileOutputStream

于 2010-10-11T17:25:52.620 回答
0

您可能已经看到nsIFile,它确实提供了一种IsWriteable()方法,但没有write()。你想要nsILocalFile::openANSIFileDesc(),它返回一个普通的FILE*.

于 2010-10-11T11:21:25.400 回答