如何在 XPCOM 中处理文件

发布于 2024-09-26 21:24:41 字数 669 浏览 8 评论 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 中使用文件。有人可以给我一些提示或教程链接吗?

I'm writing a Mozilla component to get all the links from a page an write them into a file using XPCOM and C++.
I get all the links into an array like this:

//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

but now how can I get them write to a file. I'm really clue less how to work with file in XPCOM. Can some one please give me some hints or links to tutorials please?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

情魔剑神 2024-10-03 21:24:41

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

You've probably seen nsIFile, which does offer an IsWriteable() method but no write(). You'd want nsILocalFile::openANSIFileDesc(), which returns an ordinary FILE*.

把人绕傻吧 2024-10-03 21:24:41

您需要使用 nsIFileOutputStream

You'll want to use an nsIFileOutputStream.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文