New test.
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / FileDialog.cs
index 73ecbe21bafbbcf03379a820e9b0742b6e8e3962..3494f071af642e7303b683efc4049943905f3c75 100644 (file)
@@ -3017,22 +3017,29 @@ namespace System.Windows.Forms {
                        
                        directories_out = new ArrayList ();
                        
-                       DirectoryInfo[] dirs = dirinfo.GetDirectories ();
+                       DirectoryInfo[] dirs = null;
                        
-                       for (int i = 0; i < dirs.Length; i++) {
-                               directories_out.Add (GetDirectoryFSEntry (dirs [i], currentTopFolderFSEntry));
-                       }
+                       try {
+                               dirs = dirinfo.GetDirectories ();
+                       } catch (Exception) {}
+                       
+                       if (dirs != null)
+                               for (int i = 0; i < dirs.Length; i++) {
+                                       directories_out.Add (GetDirectoryFSEntry (dirs [i], currentTopFolderFSEntry));
+                               }
                        
                        files_out = new ArrayList ();
                        
                        ArrayList files = new ArrayList ();
                        
-                       if (filters == null) {
-                               files.AddRange (dirinfo.GetFiles ());
-                       } else {
-                               foreach (string s in filters)
-                                       files.AddRange (dirinfo.GetFiles (s));
-                       }
+                       try {
+                               if (filters == null) {
+                                       files.AddRange (dirinfo.GetFiles ());
+                               } else {
+                                       foreach (string s in filters)
+                                               files.AddRange (dirinfo.GetFiles (s));
+                               }
+                       } catch (Exception) {}
                        
                        for (int i = 0; i < files.Count; i++) {
                                files_out.Add (GetFileFSEntry (files [i] as FileInfo));
@@ -3045,11 +3052,16 @@ namespace System.Windows.Forms {
                        
                        ArrayList directories_out = new ArrayList ();
                        
-                       DirectoryInfo[] dirs = dirinfo.GetDirectories ();
+                       DirectoryInfo[] dirs = null;
                        
-                       for (int i = 0; i < dirs.Length; i++) {
-                               directories_out.Add (GetDirectoryFSEntry (dirs [i], currentTopFolderFSEntry));
-                       }
+                       try {
+                               dirs = dirinfo.GetDirectories ();
+                       } catch (Exception) {}
+                       
+                       if (dirs != null)
+                               for (int i = 0; i < dirs.Length; i++) {
+                                       directories_out.Add (GetDirectoryFSEntry (dirs [i], currentTopFolderFSEntry));
+                               }
                        
                        return directories_out;
                }