1
0
mirror of https://github.com/ppy/osu.git synced 2025-03-05 08:22:56 +08:00

Add very basic error handling when a directory cannot be enumerated

This commit is contained in:
Dean Herbert 2020-05-14 13:18:37 +09:00
parent c048d9b6ae
commit 149cb93e8c

View File

@ -16,6 +16,7 @@ using osu.Framework.Platform;
using osu.Game.Graphics.Containers;
using osu.Game.Graphics.Sprites;
using osuTK;
using osuTK.Graphics;
namespace osu.Game.Graphics.UserInterfaceV2
{
@ -74,22 +75,31 @@ namespace osu.Game.Graphics.UserInterfaceV2
{
directoryFlow.Clear();
if (directory.NewValue == null)
try
{
var drives = DriveInfo.GetDrives();
foreach (var drive in drives)
directoryFlow.Add(new DirectoryPiece(drive.RootDirectory));
}
else
{
directoryFlow.Add(new ParentDirectoryPiece(currentDirectory.Value.Parent));
foreach (var dir in currentDirectory.Value.GetDirectories().OrderBy(d => d.Name))
if (directory.NewValue == null)
{
if ((dir.Attributes & FileAttributes.Hidden) == 0)
directoryFlow.Add(new DirectoryPiece(dir));
var drives = DriveInfo.GetDrives();
foreach (var drive in drives)
directoryFlow.Add(new DirectoryPiece(drive.RootDirectory));
}
else
{
directoryFlow.Add(new ParentDirectoryPiece(currentDirectory.Value.Parent));
foreach (var dir in currentDirectory.Value.GetDirectories().OrderBy(d => d.Name))
{
if ((dir.Attributes & FileAttributes.Hidden) == 0)
directoryFlow.Add(new DirectoryPiece(dir));
}
}
}
catch (Exception)
{
currentDirectory.Value = directory.OldValue;
this.FlashColour(Color4.Red, 300);
}
}