我先用的是FileInfo类,但我看File和FileInfo都没有Close()方法啊。我现在是用的Process。

解决方案 »

  1.   

    注意你的File.Open()方法的打开方式,共享打开,其它进程就可以写入了。
      

  2.   

    给段运行成功的代码参考:
    string strURL=Application.StartupPath+"\\Survey.htm" ; StreamWriter sr = File.CreateText(strURL);
    sr.WriteLine("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
    sr.WriteLine("<html>");
    sr.WriteLine("<head>");
    sr.WriteLine("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Unicode\">");
    sr.WriteLine("<title></title>");
    sr.WriteLine("</head>");
    sr.WriteLine("<body>");
    //问卷标题
    sr.WriteLine("<div align=\"center\"><font size=\"6\"><strong>"+dvSurvey[cmSurveyDetail.Position]["vcSurveyName"].ToString()+"</strong></font><strong></strong></div>"); //答题者基本信息
    DataView dvSurveyObject=new DataView();
    dvSurveyObject.Table=dsSurvey1.L_SurveyObject;
    dvSurveyObject.RowFilter="nSurveyPK="+dvSurvey[cmSurveyDetail.Position]["nSurveyPK"].ToString();
    foreach(DataRowView drv in dvSurveyObject) 
    {
    sr.WriteLine("<p><strong>&nbsp;&nbsp;"+drv["vcItem"]+":"+"</strong></p>");
    }
    //题目
    dvQuestion.RowFilter="nSurveyPK="+dvSurvey[cmSurveyDetail.Position]["nSurveyPK"].ToString();
    int i=0;
    foreach(DataRowView drv in dvQuestion) 
    {
    if ((string)drv["vcIsChoice"]=="1")//选择题
    {
    DataRow[] rowsMain,rowsDetail;
    rowsMain=dsSurvey1.L_ChoiceQuestionMain.Select("nQuestionPK='"+drv["nQuestionPK"]+"'");
    if (rowsMain[0]["vcIsMultiChoice"].ToString()=="1") 
    {
    sr.WriteLine("<p>"+drv["nOrder"].ToString().Trim()+"."+drv["vcQuestionDescribtion"].ToString()+"(可多选)</p>");

    else 
    {
    sr.WriteLine("<p>"+drv["nOrder"].ToString().Trim()+"."+drv["vcQuestionDescribtion"].ToString()+"(单选)</p>");
    }
    rowsDetail=dsSurvey1.L_ChoiceQuestionDetail.Select("nChoiceMainPK='"+rowsMain[0]["nChoiceMainPK"].ToString()+"'");
    int j=0;
    foreach(DataRow dr in rowsDetail)
    {
    sr.WriteLine("<form name=\"form"+i.ToString()+"\" method=\"post\" action=\"\">");
    if (rowsMain[0]["vcIsMultiChoice"].ToString()=="1") //多选
    {
    sr.WriteLine("<input type=\"checkbox\" name=\"checkbox"+i.ToString()+"\" value=\"checkbox\" disabled>");

    else//单选
    {
    sr.WriteLine("<input type=\"radio\" name=\"radiobutton\" value=\"radiobutton\" disabled> ");
    }
    sr.WriteLine((char)(65+j)+"."+dr["vcChoice"].ToString());
    sr.WriteLine("</form>"); j++;
    }
    } if ((string)drv["vcIsSpace"]=="1")//填空题
    {
    sr.WriteLine("<p>"+drv["nOrder"].ToString().Trim()+"."+drv["vcQuestionDescribtion"].ToString()+"</p>");
    } if ((string)drv["vcIsEssay"]=="1")//问答题
    {
    sr.WriteLine("<p>"+drv["nOrder"].ToString().Trim()+"."+drv["vcQuestionDescribtion"].ToString()+"</p>");
    DataRow[] rows;
    rows=dsSurvey1.L_EssayQuestion.Select("nQuestionPK='"+drv["nQuestionPK"]+"'");
    if (rows!=null) 
    {
    for(int j=0;j<(int)rows[0]["nMaxAnswerLine"];j++) 
    {
    sr.WriteLine("<p>&nbsp;</p>");
    }
    } } i++;
    }
    sr.WriteLine("<p>&nbsp;</p>");
    sr.WriteLine("<p>&nbsp;</p>");
    sr.WriteLine("</body>");
    sr.WriteLine("</html>"); sr.Close();
    //显示HTML文件
    axWebBrowser1.Navigate(strURL,ref obt,ref obt,ref obt,ref obt);