我正在c#中构建一个小型CMS,允许用户编辑和更新报告信息。即报告名称,作者,描述等,然后保存到JSON文件。
然后将此JSON文件用作本地WebApp作为前端。
请注意,这是一个内部应用程序,使用CMS的每个人都可以访问同一个网络驱动器。
当用户在PC#1上打开CMS时,我想向尝试在PC#2上打开CMS的用户发出提示,并模拟Excel的“只读”和“只读”。 #39;功能,因此禁用某些功能,直到另一个实例关闭。
问题:根据您的经验,最优雅的方式是什么?
我有一个想法:
当在PC#1上打开CMS时,它会创建一个名为isopen.txt的文件或类似文件,然后在关闭时删除该文件。当在PC#2上打开CMS时,它将检查该文件是否存在,然后决定“#”权限。说明CMS将运行。这个'检查'方法可以在每个' x'之后调用。秒,然后提示用户CMS现在能够进入可编辑状态。
我不确定这是否是最好的方式,并且会喜欢一些有经验的C#开发人员输入!
答案 0 :(得分:0)
您可以创建FileStream
,然后从中StreamReader
初始化:
FileStream f = new FileStream(@"path\file.json", FileMode.Open,
FileAccess.ReadWrite, FileShare.Read);
using (StreamReader r = new StreamReader(f))
{
string json = r.ReadToEnd();
//your subsequent json operations
}
FileShare.Read
允许您在using
范围内处理文件时对该文件进行只读访问。
此外,这种方式也很有用,因为您不必手动关闭流,当您退出using
时它会被处理掉。