【问题标题】:Two apps reading/writing the same text file两个应用程序读取/写入相同的文本文件
【发布时间】:2015-08-24 19:21:43
【问题描述】:

我有一个将日志写入文本文件的 Windows 服务应用,然后我有一个需要从文件中读取相同信息的 WinForms 应用。

但是我怎样才能让两个应用程序(在同一个解决方案中)读/写同一个文件? 两个应用都在同一个解决方案中使用共享项目,但

System.AppDomain.CurrentDomain.BaseDirectory + @"\log.txt";

两个点都指向不同的目录。

【问题讨论】:

  • 如果您需要在同一个解决方案中从多个应用程序访问资源,为什么不使用 logPath 配置设置?
  • 这是个糟糕的主意。您不应该有两个进程写入同一个文件。如果只是因为这样的代码的可靠性是可疑的,而一个不可靠的日志是完全没有用的。
  • @Aron - 它是读取和写入日志的同一个类。写入部分只是从 Win Service 项目中调用,而读取类是从另一个项目中调用的。但它是同一类,在 1 个项目中。
  • @user1208908 这不是日志。它是基于文件系统的 IPC。它是一种反模式,甚至比 IPC over RDBMS 更糟糕,除了通过内存映射文件实现的情况。请查看其他 IPC 技术,例如 WCF 命名管道。

标签: c# winforms windows-services


【解决方案1】:

对于通用路径,请尝试使用:

string folderPath1 = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
// or 
string folderPath2 = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    • 1970-01-01
    • 2011-11-17
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多