Skip to content

Commit

Permalink
allow enumeration of dirents despite not all of them succeeding
Browse files Browse the repository at this point in the history
  • Loading branch information
ILW8 committed Dec 21, 2023
1 parent ba569bf commit 0ac534f
Showing 1 changed file with 13 additions and 3 deletions.
16 changes: 13 additions & 3 deletions osu.Framework/Graphics/UserInterface/DirectorySelector.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
using osu.Framework.Bindables;
using osu.Framework.Extensions.EnumExtensions;
using osu.Framework.Graphics.Containers;
using osu.Framework.Logging;
using osu.Framework.Platform;
using osuTK;

Expand Down Expand Up @@ -204,10 +205,19 @@ protected virtual bool TryGetEntriesForPath(DirectoryInfo path, out ICollection<

try
{
foreach (var dir in path.GetDirectories().OrderBy(d => d.Name))
foreach (string directoryName in Directory.GetDirectories(path.FullName).OrderBy(d => d))
{
if (ShowHiddenItems.Value || !dir.Attributes.HasFlagFast(FileAttributes.Hidden))
items.Add(CreateDirectoryItem(dir));
try
{
DirectoryInfo di = new DirectoryInfo(directoryName);
if (ShowHiddenItems.Value || !di.Attributes.HasFlagFast(FileAttributes.Hidden))
items.Add(CreateDirectoryItem(di));
}
catch
{
// Don't fail enumeration if we fail getting attributes for a single entry
Logger.Log($"Directory {directoryName} is inaccessible", LoggingTarget.Information, LogLevel.Debug);
}
}

return true;
Expand Down

0 comments on commit 0ac534f

Please sign in to comment.