【问题标题】:c# winForms Outputting to Text Filec# winForms 输出到文本文件
【发布时间】:2010-12-25 09:13:08
【问题描述】:

我在 Visual Studio 2010 中使用 C# windows 窗体。

我需要知道将在 winForm 中选择的数据输出到简单文本文件的最佳方法是什么?

一个例子:

用户必须选择时间/日期。一旦用户选择它,他们就会点击确认。

我需要 winForm 中的确认按钮将日期/时间发送到一个 txt 文件,该文件保存在给定位置的计算机上。

在这方面的任何帮助将不胜感激!

【问题讨论】:

标签: c# winforms


【解决方案1】:

使用 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 显示语法错误?它说“作家”是一个字段,但被用作“类型”?有什么想法吗?
  • 您的代码示例很好,但同时调用 Close 和 Dispose 是多余的,因为 Close 在内部调用 Dispose(我认为。可能是相反的方式),所以您实际上应该在这里调用 Dispose。
  • 啊,感谢 Øyvind 的提醒。我可以告诉你,Close 不会调用 Dispose。如果有的话,它必须是相反的。但是非常好用!谢谢!
  • Cameron,你收到什么样的错误?确保将“()”放在方法调用之后,例如 ToString()。还要确保不要将“()”放在非方法调用之后,例如 DateTime.Now 等属性。
  • 它说“作家”是一个字段,但被用作“类型”有什么想法吗?
【解决方案2】:

怎么样...

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    • 2013-04-21
    • 2016-09-23
    • 1970-01-01
    • 2017-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多