C# WinForms 输出到文本文件

5
我正在使用Visual Studio 2010中的C# Windows Forms。
请问如何将WinForm中选择的数据输出到简单的文本文件中呢?
例如:用户需要选择日期/时间,选择完毕后点击“确认”按钮。我需要在WinForm中添加代码,将所选的日期/时间发送到指定位置的文本文件中保存。
非常感谢您在这方面提供的任何帮助!

如何在C语言中编写文本文件 - Devendra D. Chavan
2个回答

9
使用 System.IO.StreamWriter。
举个例子:
System.IO.StreamWriter writer = new System.IO.StreamWriter("path to file"); //open the file for writing.
writer.Write(DateTime.Now.ToString()); //write the current date to the file. change this with your date or something.
writer.Close(); //remember to close the file again.
writer.Dispose(); //remember to dispose it from the memory.

如果您在写入文件时遇到问题,可能是由于UAC(用户帐户控制)阻止访问该特定文件。典型的解决方法是以管理员身份启动程序,以防止发生这种情况,但我认为这是一个相当糟糕的解决方案。
此外,在文档文件夹中存储数据对用户来说是不愉快的。一些用户(包括我自己)喜欢将我的文档文件夹放满...文档,而不是应用程序设置和配置文件。
因此,我建议使用本地应用程序数据文件夹(如果您在开始菜单搜索栏中键入%localappdata%,就会找到它)。该文件夹未被UAC锁定,不需要管理特权即可写入。实际上,它就是为此目的而设计的;存储设置和数据。
可以使用以下代码返回此目录的路径:
string path = System.Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);

我希望这可以回答你的问题。

好的,谢谢Mathias。我已经尝试了实现它,但是writer.write显示语法错误?它说'writer'是一个字段,但被用作'type'?有什么想法吗? - Simagen
1
您的代码示例很好,但是同时调用Close和Dispose是多余的,因为Close在内部调用了Dispose(我想是这样的,也许反过来),所以您实际上应该只调用Dispose。 - Øyvind Bråthen
啊,谢谢你提醒我,Øyvind。我可以告诉你Close不会调用Dispose。如果有的话,应该是相反的情况。但这非常有用!谢谢! - Mathias Lykkegaard Lorenzen
它说'writer'是一个字段,但被用作了一个'type',有什么想法吗? - Simagen
我需要更多的代码来查看可能存在的一般问题。发布包含错误的行。 - Mathias Lykkegaard Lorenzen
显示剩余2条评论

2

你觉得...

String YourFormattedText = FieldFromForm.ToString( whatever formatting );
File.WriteAllText( FullPathAndFileNameToWriteTo, YourFormattedText );

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接