public static void Delete(ISaveLoadable savable) { object lockObject; AddIdToLock(savable.GetId()); lockObject = GetLockById(savable.GetId()); lock (lockObject) { System.IO.File.Delete(System.IO.Path.Combine(Paths.GetUserForkandBeardDataSubFolderPath(savable.GetSubDirectoryPath()), String.Format("{0}.xml", savable.GetId().ToString()))); } }
public static void Save(ISaveLoadable savable) { string dataPath; System.Xml.Serialization.XmlSerializer serialiser; object lockObject; AddIdToLock(savable.GetId()); lockObject = GetLockById(savable.GetId()); serialiser = new System.Xml.Serialization.XmlSerializer(savable.GetType()); dataPath = Paths.GetUserForkandBeardDataSubFolderPath(savable.GetSubDirectoryPath()); lock (lockObject) { using (System.IO.FileStream fs = new System.IO.FileStream(System.IO.Path.Combine(dataPath, String.Format("{0}.xml", savable.GetId().ToString())), System.IO.FileMode.Create)) { serialiser.Serialize(fs, savable); } } RemoveIdToLock(savable.GetId()); }