【发布时间】:2012-11-30 08:56:49
【问题描述】:
我有一个 Windows 窗体应用程序,用户可以在其中打开、创建和保存 xml 文件。文件通常保存到网络文件夹。我需要确保给定文件一次只能由一个用户打开。 xml 文件被加载到树控件中,并在会话期间经常保存。 (几乎任何时候点击树节点) 我打开文件是这样的:
FileStream fs = new FileStream(m_Filename, FileMode.Open);
XmlReader reader = new XmlTextReader(fs);
XmlSerializer deserializer = new XmlSerializer(typeof(BaseBoardTest));
m_TestNodes = (BaseBoardTest)deserializer.Deserialize(reader);
fs.Close();
像这样保存:
TextWriter writer = new StreamWriter(filename);
XmlSerializer serializer = new XmlSerializer(typeof(BaseBoardTest));
serializer.Serialize(writer, m_TestNodes);
writer.Close();
如果其他用户尝试打开文件或通过另存为覆盖文件,我想显示一条消息,说明哪个用户/计算机名称打开了文件。 我正在考虑在打开文件时创建一个锁定文件。 有没有更好的方法来处理这个问题?
【问题讨论】:
-
完成后关闭文件怎么样?