Txt项目文件编写问题C#

时间:2015-01-21 14:37:58

标签: c# text-files streamwriter

我不明白为什么我可以阅读但不能写入项目内的文件。当我选择发布时,它似乎写入文件,但在调试模式下它没有。当我使用相同的功能将列表写入文件的行到不同的文件夹时,它总是工作但不在我想要的文件上。

实施例: 功能:

public void WriteLinesFromListToTextFile(List<string> listOfContent, string txtFileName)
{
    StreamWriter writer = File.AppendText(txtFileName);
    foreach (string Item in listOfContent)
    {
        writer.WriteLine(Item);
    }
    writer.Flush();
    writer.Close();
}

以后

List<string> exampleList = new List<string>();
tmp.Add("line1");
tmp.Add("line2");
tmp.Add("line3");
WriteLinesFromListToTextFile(exampleList, "TextOnProjectRoot.txt")

在我选择的文件属性中&#34;始终复制&#34;并且还尝试过复制如果更新&#34;。 我也管理VS作为管理员。 当我创建文件时,它确实将其复制到根文件夹,但只是没有写入它。 我还想声明根本没有例外。 谢谢你的帮助

2 个答案:

答案 0 :(得分:0)

我有点不确定你要归档的是什么,但我这样理解你:

您有一个文本文件作为项目的一部分。在运行时,您尝试将一些文本写入此文件。当应用程序关闭时,您希望看到项目中文本文件中的更改。

我是对的吗?

如果是这样,我猜测问题如下:当您第一次启动应用程序时,属于项目一部分的文本文件将与可执行文件一起复制到输出文件夹中。程序运行,文件被操纵。但是当应用程序关闭时,文件永远不会从输出文件夹复制回项目文件夹。这不是事情的运作方式......

答案 1 :(得分:0)

如果您的程序需要访问文件,并且您没有指定路径,则它会使用.exe的当前位置。如果这对您的目的来说足够好,那么您只需要知道您无法将其添加到解决方案中;像韦加说的那样,它并没有这样做。您可以做的是编译您的程序,然后浏览到.exe所在的文件夹(调试,发布或其他)并从那里运行.exe,然后打开文本文件并查看您的更改。如果您需要创建或确保该文件已存在,您也可以在代码中执行此操作。您无法将其包含在解决方案中,但您仍然可以写入该文件。