日期:2014-05-18  浏览次数:20512 次

高效的文件生成方法
写了一个方法,主要实现WEB文件生成的功能,真正使用中一次性可能会生成1000以上个HTML文件。
方法如下:
 /// <summary>
  /// 生成文件
  /// </summary>
  /// <param name="FileFullName">文件全路径</param>
  /// <param name="FileContent">文件内容</param>
  public void WriteLine(string FileFullName, string FileContent)
  {
  //byte[] buffer = gb.GetBytes(FileContent);
  string dir = FileFullName.Substring(0, FileFullName.LastIndexOf("\\"));
  if (!Directory.Exists(dir))
  {
  //判断目录是否存在如果不存在则创建
  Directory.CreateDirectory(dir);
  }
  StreamWriter myStrWrite = new StreamWriter(FileFullName,false);
  myStrWrite.WriteLine(FileContent);
  myStrWrite.Close();

  /*
  * 考虑到大批量文件的处理生成方式更换
  FileStream fs = new FileStream(FileFullName, FileMode.Create);
  fs.Write(buffer, 0, buffer.Length);
  fs.Flush();
  fs.Close();
  */
  }

问题:无论使用StreamWriter 还是使用FileStream 进行生成。速度都很慢,一般生成500个文件时就好像卡死了。生成少量文件没有问题。寻求高效的解决方案。谢谢!!

------解决方案--------------------
多线程
------解决方案--------------------
可以做生成日志 读取日志