ユーザーがxmlファイルを開いたり、作成したり、保存したりできるWindowsフォームアプリがあります。通常、ファイルはネットワーク フォルダに保存されます。特定のファイルを一度に 1 人のユーザーだけが開くことができるようにする必要があります。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();
別のユーザーがファイルを開こうとしたり、名前を付けて保存して上書きしようとした場合に、どのユーザー/コンピューター名がファイルを開いているかを示すメッセージを表示したいと思います。ファイルを開くときにロックファイルを作成することを検討しています。これを処理するより良い方法はありますか?