我有一个 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();
如果另一个用户试图打开文件或通过“另存为”覆盖文件,我希望显示一条消息,指出哪个用户/计算机名已经打开了该文件。 当文件被打开时,我考虑创建一个锁定文件。 有更好的方法来处理这个问题吗?