这段代码就是获取一个页面的Html代码,写到指定的文件夹里,代码如下:
public bool SaveHtml(string url, string path)
{
try
{
EnsurePath(path); //这个函数就是确保 path 中的文件夹是存在的. string html = getHtmlText(url);
//这里写文件
StreamWriter wr = new StreamWriter(filePath, false, Encoding.GetEncoding("gb2312"));
wr.Write(html);
wr.Flush();
wr.Close(); return true;
}
catch (Exception ex)
{ //往系统的日志里写出错信息
LogHelper.WriteErrorMessage("出错:" + ex.Message + "\nStackTrace:" + ex.StackTrace + "\nSource:" + ex.Source + "\nURL:" + url + "\n存储路径:" + path);
return false;
}
} /// <summary>
/// 确保路径里的文件夹是存在的,不存在,就创建
/// </summary>
/// <param name="Inpath"></param>
public void EnsurePath(string Inpath)
{
string[] pathSplit = Inpath.Split('\\');
string path = pathSplit[0] + "\\" + pathSplit[1];
for (int i = 2; i < pathSplit.Length - 1; i++)
{
path += "\\" + pathSplit[i];
if (!Directory.Exists(path))
Directory.CreateDirectory(path);
}
}
SaveHtml()函数是被循环调用的,大部分时候是好的,但是到了某个文件夹的时候就老是出现 无法创建目录或文件
在出现错误的时候,这个目录下有接近2万5千左右的文件.每个文件大概 16k左右.
不知道是哪里有问题,请大家帮我看看. 非常感谢.
public bool SaveHtml(string url, string path)
{
try
{
EnsurePath(path); //这个函数就是确保 path 中的文件夹是存在的. string html = getHtmlText(url);
//这里写文件
StreamWriter wr = new StreamWriter(filePath, false, Encoding.GetEncoding("gb2312"));
wr.Write(html);
wr.Flush();
wr.Close(); return true;
}
catch (Exception ex)
{ //往系统的日志里写出错信息
LogHelper.WriteErrorMessage("出错:" + ex.Message + "\nStackTrace:" + ex.StackTrace + "\nSource:" + ex.Source + "\nURL:" + url + "\n存储路径:" + path);
return false;
}
} /// <summary>
/// 确保路径里的文件夹是存在的,不存在,就创建
/// </summary>
/// <param name="Inpath"></param>
public void EnsurePath(string Inpath)
{
string[] pathSplit = Inpath.Split('\\');
string path = pathSplit[0] + "\\" + pathSplit[1];
for (int i = 2; i < pathSplit.Length - 1; i++)
{
path += "\\" + pathSplit[i];
if (!Directory.Exists(path))
Directory.CreateDirectory(path);
}
}
SaveHtml()函数是被循环调用的,大部分时候是好的,但是到了某个文件夹的时候就老是出现 无法创建目录或文件
在出现错误的时候,这个目录下有接近2万5千左右的文件.每个文件大概 16k左右.
不知道是哪里有问题,请大家帮我看看. 非常感谢.
http://topic.csdn.net/u/20081031/15/36442bbb-1ca0-4432-ad8b-54689e0a3cab.html?seed=686404322
public void EnsurePath(string Inpath)
{
if (!Directory.Exists(Inpath))
Directory.CreateDirectory(Inpath);
}
建议楼主不要把这个方法放到SaveHtml()里面,没必要每次都去确认路径是否存在
只要在循环之前调用一次就够了。。
这个的话就要注意磁盘空间是否已满。。