[MonoDevelop] [Patch] Check if basedir exists before saving properties

Christian Hergert christian.hergert at gmail.com
Tue Sep 4 02:17:34 EDT 2007

If a user `rm -rf ~/.config/MonoDevelop/` and then tries to run monodevelop
again with `make run`, an exception will be thrown when attempting to save
the properties xml. I'm not sure if the PropertyService is the proper place
to check, perhaps the Properties class itself. Anywho, to get the ball
rolling ..

Index: Core/src/MonoDevelop.Core/MonoDevelop.Core/PropertyService.cs
--- Core/src/MonoDevelop.Core/MonoDevelop.Core/PropertyService.cs
(revision 85252)
+++ Core/src/MonoDevelop.Core/MonoDevelop.Core/PropertyService.cs
(working copy)
@@ -88,7 +88,14 @@
                public static void SaveProperties()
                        Debug.Assert (properties != null);
-                       properties.Save (Path.Combine (ConfigPath,
+                       string filePath = Path.Combine (ConfigPath,
+                       string dirPath  = Path.GetDirectoryName (filePath);
+                       if (!Directory.Exists (dirPath))
+                               Directory.CreateDirectory (dirPath);
+                       properties.Save (filePath);

                public static T Get<T> (string property, T defaultValue)

-- Christian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/monodevelop-list/attachments/20070903/c368a88d/attachment.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: md-crash-properties.patch
Type: text/x-patch
Size: 762 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/monodevelop-list/attachments/20070903/c368a88d/attachment.bin 

More information about the Monodevelop-list mailing list