From 7f8c0b5eec50320c7904b2a653713ccc03ac640e Mon Sep 17 00:00:00 2001 From: PopSlime Date: Thu, 30 Nov 2023 01:13:43 +0800 Subject: [PATCH] Displays directory access error in file system resource manager. --- .../Crtr/Browsing/FileSystemResourceManager.cs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/Assets/Cryville/Crtr/Browsing/FileSystemResourceManager.cs b/Assets/Cryville/Crtr/Browsing/FileSystemResourceManager.cs index e82c00b..a9c9102 100644 --- a/Assets/Cryville/Crtr/Browsing/FileSystemResourceManager.cs +++ b/Assets/Cryville/Crtr/Browsing/FileSystemResourceManager.cs @@ -1,8 +1,10 @@ using Cryville.Common; +using Cryville.Crtr.UI; using System; using System.Collections.Generic; using System.IO; using System.Linq; +using System.Security; namespace Cryville.Crtr.Browsing { internal class FileSystemResourceManager : IPathedResourceManager { @@ -57,9 +59,19 @@ namespace Cryville.Crtr.Browsing { #error No root path handling logic #endif _cd = new DirectoryInfo(path); - _items = _cd.GetFileSystemInfos() - .Where(i => i is DirectoryInfo || _extFilter.Contains(i.Extension)) - .Select(i => new FileSystemEntry(i)).ToArray(); + try { + _items = _cd.GetFileSystemInfos() + .Where(i => i is DirectoryInfo || _extFilter.Contains(i.Extension)) + .Select(i => new FileSystemEntry(i)).ToArray(); + } + catch (SecurityException ex) { + Popup.CreateException(ex); + return; + } + catch (UnauthorizedAccessException ex) { + Popup.CreateException(ex); + return; + } } ApplyFilter(); DirectoryChanged?.Invoke();