无法访问文件

本文关键字:文件 访问 | 更新日期: 2023-09-27 18:04:44

下面一行使我能够访问我的结果文件:

// Write the string to a file.
public System.IO.StreamWriter file = new System.IO.StreamWriter
("C:''TestDev''Visual Stidio 2012 Developments''Training''Project   
1''HSMTESTClient_03''HSMTESTClient''Results''Results.txt");

之后,我使用以下命令写入我的文件:

      file.WriteLine(" TX: " + message + "'r'n");

一切正常。然而,在这个开发(加密/解密程序)中,我设法嵌入了另一个名为SafeNetAdaptor的项目。到目前为止,所有向my Results文件写入的尝试都失败了。在这个非常复杂的过程中,我需要能够记录各种操作的结果。为了继续调试,我准备为该部分创建一个不同的Results文件—然而,尽管创建了该文件,但没有向其写入结果。为什么会这样呢?谢谢你的帮助& &;考虑。

无法访问文件

不是个好主意:)

考虑使用日志框架。周围有很多。例子是

  • log4net
  • 日志
public System.IO.StreamWriter file

对我大喊"BAD"

通过公共字段共享对文件的访问?坏主意。您希望提供封装。理想情况下,您希望提供处理语义。您需要处理缓冲。你想独立于实际实现——而不是一个公共的StreamWriter,公开一个日志记录类(正如Stefano所写的,你通常会使用一个现成的日志记录框架)。

StreamWriter需要手动刷新,它不会像您那样快速写入。即使刷新StreamWriter也不能保证任何事情,因为它仍然可以在写缓冲区中- I/O操作几乎从来没有直接对设备进行过。而且,在每次日志尝试之后刷新会使性能受到影响——不是很好,因为日志记录对性能的影响应该尽可能小。

完成后不要忘记正确关闭文件。理想情况下,如果您只处理子操作的日志记录,只需将整个内容包装在using中:

using (var file = File.CreateText("results.txt"))
{
  var log = new MyLoggingManager(file);
  DoStuff(log);
}

还会出现很多其他问题,比如文件共享、权限、并发访问等等。只需使用日志框架:)