* FileDialog.cs: When creating a new folder don't crash if the
authorAlexander Olk <aolk@mono-cvs.ximian.com>
Thu, 8 Jun 2006 19:54:24 +0000 (19:54 -0000)
committerAlexander Olk <aolk@mono-cvs.ximian.com>
Thu, 8 Jun 2006 19:54:24 +0000 (19:54 -0000)
  folder already exists.

2006-06-08  Alexander Olk  <alex.olk@googlemail.com>

svn path=/trunk/mcs/; revision=61583

mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
mcs/class/Managed.Windows.Forms/System.Windows.Forms/FileDialog.cs

index 0d96f79ff629dfc89bfe03372e788490284e0d66..01faf7db9af7413e57eb33eaf392b93af3c419aa 100644 (file)
@@ -1,3 +1,8 @@
+2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
+
+       * FileDialog.cs: When creating a new folder don't crash if the
+         folder already exists.
+
 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
 
        * FileDialog.cs: Allmost a complete rewrite.
index 6e19ef21b0479fab6c01be4c2c513fcbb09e509a..322481d82653fe704248842b96f43ba8d2b66494 100644 (file)
@@ -2720,7 +2720,18 @@ namespace System.Windows.Forms {
                public bool CreateFolder (string new_folder)
                {
                        try {
-                               Directory.CreateDirectory (new_folder);
+                               if (Directory.Exists (new_folder)) {
+                                       int i = 1;
+                                       string folder = new_folder + "[" + i + "]";
+                                       
+                                       while (Directory.Exists(folder)) {
+                                               i++;
+                                               folder = new_folder + "[" + i + "]";
+                                       }
+                                       
+                                       Directory.CreateDirectory (folder);
+                               } else
+                                       Directory.CreateDirectory (new_folder);
                        } catch (Exception) {
                                return false;
                        }