diff --git a/IPA.Loader/Loader/LibLoader.cs b/IPA.Loader/Loader/LibLoader.cs index 58dbc6d4..febff3df 100644 --- a/IPA.Loader/Loader/LibLoader.cs +++ b/IPA.Loader/Loader/LibLoader.cs @@ -93,24 +93,17 @@ namespace IPA.Loader Console.WriteLine($"[{lvl}] {message}"); } - private static void AssemblyLibLoaderCallLogger(Logger.Level lvl, string message) - { - Logger.libLoader.Log(lvl, message); - } + private static void AssemblyLibLoaderCallLogger(Logger.Level lvl, string message) => Logger.libLoader.Log(lvl, message); // https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/file-system/how-to-iterate-through-a-directory-tree private static IEnumerable TraverseTree(string root, Func dirValidator = null) { if (dirValidator == null) dirValidator = s => true; - // Data structure to hold names of subfolders to be - // examined for files. Stack dirs = new Stack(32); if (!Directory.Exists(root)) - { throw new ArgumentException(); - } dirs.Push(root); while (dirs.Count > 0) @@ -121,23 +114,12 @@ namespace IPA.Loader { subDirs = Directory.GetDirectories(currentDir); } - // An UnauthorizedAccessException exception will be thrown if we do not have - // discovery permission on a folder or file. It may or may not be acceptable - // to ignore the exception and continue enumerating the remaining files and - // folders. It is also possible (but unlikely) that a DirectoryNotFound exception - // will be raised. This will happen if currentDir has been deleted by - // another application or thread after our call to Directory.Exists. The - // choice of which exceptions to catch depends entirely on the specific task - // you are intending to perform and also on how much you know with certainty - // about the systems on which this code will run. catch (UnauthorizedAccessException) { - //Console.WriteLine(e.Message); continue; } catch (DirectoryNotFoundException) { - //Console.WriteLine(e.Message); continue; } @@ -146,42 +128,27 @@ namespace IPA.Loader { files = Directory.GetFiles(currentDir); } - catch (UnauthorizedAccessException) { - - //Console.WriteLine(e.Message); continue; } - catch (DirectoryNotFoundException) { - //Console.WriteLine(e.Message); continue; } - // Push the subdirectories onto the stack for traversal. - // This could also be done before handing the files. foreach (string str in subDirs) if (dirValidator(str)) dirs.Push(str); - // Perform the required action on each file here. - // Modify this block to perform your required task. foreach (string file in files) { FileInfo nextValue; try { - // Perform whatever action is required in your scenario. nextValue = new FileInfo(file); - //Console.WriteLine("{0}: {1}, {2}", fi.Name, fi.Length, fi.CreationTime); } catch (FileNotFoundException) { - // If file was deleted by a separate application - // or thread since the call to TraverseTree() - // then just continue. - //Console.WriteLine(e.Message); continue; }