diff --git a/Assets/Scripts/Game/UserInterface/FolderBrowser.cs b/Assets/Scripts/Game/UserInterface/FolderBrowser.cs index db133df9b6..0163f43e3b 100644 --- a/Assets/Scripts/Game/UserInterface/FolderBrowser.cs +++ b/Assets/Scripts/Game/UserInterface/FolderBrowser.cs @@ -222,12 +222,19 @@ void RefreshFolders() foreach (var directory in directoryList) { - DirectoryInfo info = new DirectoryInfo(directory); - if (showHiddenFilesCheck.IsChecked || (info.Attributes & FileAttributes.Hidden) == 0) + try { - string name = Path.GetFileName(directory); - folders.Add(name); - folderList.AddItem(name); + DirectoryInfo info = new DirectoryInfo(directory); + if (showHiddenFilesCheck.IsChecked || (info.Attributes & FileAttributes.Hidden) == 0) + { + string name = Path.GetFileName(directory); + folders.Add(name); + folderList.AddItem(name); + } + } + catch (Exception e) + { + Debug.LogWarningFormat("FolderBrowser: Skipping inaccessible directory '{0}': {1}", directory, e.Message); } } @@ -236,11 +243,14 @@ void RefreshFolders() folderScroller.ScrollIndex = 0; folderList.SelectedIndex = 0; } - catch + catch (Exception e) { + Debug.LogErrorFormat("FolderBrowser: Failed to enumerate '{0}': {1}", currentPath, e.Message); folders.Clear(); folderList.ClearItems(); - return; + if (currentPath != drives[driveList.SelectedIndex]) + folderList.AddItem(parentDirectory); + folderList.AddItem("(could not read directory)"); } }