繁体   English   中英

StreamWriter不会创建新文件

StreamWriter doesn't create new file

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

软件:Visual Web Developer 2008 Express Edition框架:ASP.NET 3.5语言:C#书籍:编程ASP.NET 3.5

我正在尝试从书中获取代码,但未按预期方式创建C:\\ CodeLocal \\ test.txt

Global.asax中

<%@ Application Language="C#" %>
<%@ Import Namespace="System.IO" %>


<script runat="server">

    void Application_Start(object sender, EventArgs e) 
    {
        // Code that runs on application startup
        Application["strStartMsg"] = "The application has started.";
        string[] Books = {"SciFi","Fiction","Computers","History","Religion"};
        Application["arBooks"] = Books;
        WriteFile("Application Starting");
    }

    void Application_End(object sender, EventArgs e) 
    {
        //  Code that runs on application shutdown
        Application["strEndMsg"] = "The application is ending.";
        WriteFile("Application Ending");
    }

    void WriteFile(string strText) {
        StreamWriter writer = new StreamWriter(@"C:\CodeLocal\test.txt",true);
        string str;
        str = DateTime.Now.ToString() + " " + strText;
        writer.WriteLine(str);
        writer.Close();
    }

</script>

Demo.aspx.cs

public partial class ApplicationStateDemo : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        StringBuilder sb = new StringBuilder();
        sb.AppendFormat("{0}<br/>",(string)Application["strStartMsg"]);
        sb.AppendFormat("{0}<br/>", (string)Application["strEndMsg"]);

        string[] arTest = (string[])Application["arBooks"];
        sb.AppendFormat("{0}<br/>",arTest[1].ToString());

        lblText.Text = sb.ToString();
    }
}

当我运行代码时,浏览器如下所示

在此处输入图片说明

但是,当我关闭浏览器以停止执行时,没有创建test.txt

代码看起来正确,为什么这不起作用?

2 个回复

您是否在寻找Session_Start和End事件处理程序?

当浏览器关闭时,应用程序不会结束(并且Application_End事件处理程序不会被调用)。 必须告知应用程序池以温和的方式结束。 在一段时间不活动后,应用程序池回收或关闭时,会发生这种情况。

因为在您的应用程序的应用程序池下运行的身份可能没有目录C:\\ CodeLocal的写权限。 尝试为此文件夹的应用程序池标识赋予写权限。

1 StreamWriter不会追加到文件,而是在其他目录中创建新文件

在对源文件中的某些数据进行某些更改后,我尝试将文件从一个文件写入临时文件。 在我将此逻辑提取到其自己的功能中之前,此方法一直有效。 运行一些测试后,我注意到只有第一行被保存到我指定位置的文件中。 调试后,从第二次调用此函数开始,我便能看到文件位置在完全不同的位置。 我有两个问题, ...

2 每次执行程序时,使用StreamWriter创建新文件

我正在制作用于处理数据库中图像的简单工具。 我想在txt文件中显示输出结果,并且由于每次结果都可能不同,因此我希望每次执行数据时都用新数据重写文件。 我也想(如果可能的话)使用一些默认位置,即使我有一个App.Config文件,也将在其中创建txt文件,这也是一个选择。 我遇到的问 ...

3 创建新文件的功能

我想创建一个函数user_dialogue(),要求输入两个文件的名称。 该函数需要处理诸如IOError之类的错误。 然后,这两个文件应通过我创建的另一个函数(称为加密函数)运行。 该程序应该像这样工作: 新加密文件的名称:out_file.txt 要加密的文件名:bla ...

5 如何从范围创建新文件

我想从工作表“ listastrategyzna” .D2创建新文件(在同一文件夹中)(仅当不存在时)。 下一个偏移一个位置,并创建下一个文件等。我在做什么错? ...

6 VBA Loop创建新文件

VBA的新手。 我正在尝试编写一个程序来打开一个文件夹中的文件,更新它们并将其保存在新文件夹中。 我已经完成了那部分,问题是下面的“ Do While循环”使代码循环遍历给定文件夹中的文件,但是当每个文件都被打开,编辑并保存为下一个时期的文件夹时,并没有结束循环。 它只是不断重复循环。 ...

7 而不是重写新文件被创建

我正在尝试写入已存在的文件。 据我在论坛上看到,这段代码应该重写旧文件,但不是重写,而是将文件名放入[]括号中并创建一个新文件。 任何的想法? ...

2013-07-09 08:48:43 2 204   java
9 从现有文件创建新文件

我有一个文本文件,当我使用流阅读器打开它时,它看起来像这样:(“删除”只是为了向您展示我想做什么) “ A”是父行,“ B”是父行正下方的子行。 一些A可能没有子行。 基本上,我想要一个仅包含A和其子代(B)的新文本文件,而A的行中第二个字段不包含2。因此,我的新文本文件(使用str ...

2016-02-15 21:40:36 2 62   c#
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM