【问题标题】:Only One File Created why?为什么只创建了一个文件?
【发布时间】:2012-02-14 15:20:04
【问题描述】:

在这里,我从数据库中读取数据,循环遍历结果,并将包含 HTML 字符串行的列值传递给函数。此函数从 HTML 输入中提取<body> 标记和内容。

在调试中添加断点并逐步执行代码时,一切正常。删除断点后,只创建一个文件,但不抛出异常。代码:

for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
    {
        try
        {
            getBody(ds.Tables[0].Rows[i]["MailText"].ToString());
        }
        catch(Exception exp)
        {
            Response.Write(exp.ToString());
        }
    }


public void getBody(string html)
{
    try
    {
        HtmlDocument HD = new HtmlDocument();
        HD.LoadHtml(html);
        string output = HD.DocumentNode.SelectSingleNode("//body") == null ? HD.DocumentNode.InnerHtml : HD.DocumentNode.SelectSingleNode("//body").InnerHtml;
        using (StreamWriter sw = new StreamWriter(Server.MapPath("OnlyBody/") + DateTime.Now.ToString("ddMMyyyyhhmmss") + ".txt"))
        {
            sw.Flush();
            sw.Write(output);
            if (sw != null)
            {
                sw.Close();
                sw.Dispose();
            }
        }

    }
    catch (Exception exp)
    {
        throw exp;
    }
    finally
    {

    }
}

起初我以为问题出在文件流上,但即使在处理 StreamWriter 之后,错误仍然存​​在。

【问题讨论】:

    标签: c# filestream streamreader


    【解决方案1】:

    当你用断点调试时,这段代码会返回不同的结果:

    DateTime.Now.ToString("ddMMyyyyhhmmss")
    

    没有断点,秒数 (ss) 不会增加,因为代码执行得太快了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-22
      • 2019-05-28
      • 2018-07-13
      • 2019-02-19
      • 1970-01-01
      • 2011-10-01
      相关资源
      最近更新 更多