如何将字符串内容保存到本地文件

时间:2015-05-16 07:01:18

标签: c# c#-4.0 c#-3.0

我正在开发一个通过Web浏览器控件显示网页的应用程序。

单击“保存”按钮时,带有图像的网页应存储在本地存储中。它应该以.html格式保存。

我有以下代码:

WebRequest request = WebRequest.Create(txtURL.Text);
WebResponse response = request.GetResponse();
Stream data = response.GetResponseStream();
string html = String.Empty;

using (StreamReader sr = new StreamReader(data))
{
    html = sr.ReadToEnd();
}

现在string html包含网页内容。我需要将其保存到D:\Cache\

如何将html内容保存到磁盘?

3 个答案:

答案 0 :(得分:2)

您可以使用此代码将HTML字符串写入文件:

var path= @"D:\Cache\myfile.html");
File.WriteAllText(path, html);

进一步细化:从(文本)URL中提取文件名。

<强>更新 有关详细信息,请参阅Get file name from URI string in C#。这个想法是:

var uri = new Uri(txtUrl.Text);

var filename = uri.IsFile 
  ? System.IO.Path.GetFileName(uri.LocalPath)
  : "unknown-file.html";

答案 1 :(得分:0)

您必须在保存按钮

上写下以下代码

File.WriteAllText(path,browser.Document.Body.Parent.OuterHtml,Encoding.GetEncoding(browser.Document.Encoding));

现在'Body.parent'必须保存整个页面,而不是仅保存部分。

检查它。

答案 2 :(得分:0)

据我所知,.NET Framework没有内置任何内容。

所以我的方法如下:

  • 使用System.NET.HttpWebRequest将主HTML文档作为一个 字符串或流(简单)。 (你已经完成了)

  • 将其加载到HTMLAgilityPack文档中,您现在可以轻松地将其加载到该文档中 查询文档以获取所有图像元素,样式表的列表 链接等

  • 然后为每个文件单独发出Web请求并保存 他们到一个子目录。

  • 最后更新主页面中的所有相关链接以指向 子目录中的项目。