summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2021-08-18 23:55:43 -0400
committerJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2021-11-28 00:01:46 -0500
commit89c98223ebf6bfeee5ef587ab748995e09dd4310 (patch)
treecda58811dd54ceeca59c22da7e3a9da24ddb01bd /src
parentb349e956c6bb4608b4e158282700bf39e0072817 (diff)
downloadSMAPI-89c98223ebf6bfeee5ef587ab748995e09dd4310.tar.gz
SMAPI-89c98223ebf6bfeee5ef587ab748995e09dd4310.tar.bz2
SMAPI-89c98223ebf6bfeee5ef587ab748995e09dd4310.zip
remove path-too-long exception handling
The path length limit no longer applies in .NET 5.
Diffstat (limited to 'src')
-rw-r--r--src/SMAPI.Installer/InteractiveInstaller.cs11
-rw-r--r--src/SMAPI.Toolkit/Utilities/PathUtilities.cs28
-rw-r--r--src/SMAPI/Framework/Logging/LogManager.cs19
3 files changed, 1 insertions, 57 deletions
diff --git a/src/SMAPI.Installer/InteractiveInstaller.cs b/src/SMAPI.Installer/InteractiveInstaller.cs
index 896017d3..714a959b 100644
--- a/src/SMAPI.Installer/InteractiveInstaller.cs
+++ b/src/SMAPI.Installer/InteractiveInstaller.cs
@@ -259,17 +259,6 @@ namespace StardewModdingApi.Installer
Console.ReadLine();
return;
}
-
- // game folder doesn't contain paths beyond the max limit
- {
- string[] tooLongPaths = PathUtilities.GetTooLongPaths(Path.Combine(paths.GamePath, "Mods")).ToArray();
- if (tooLongPaths.Any())
- {
- this.PrintError($"SMAPI can't install to the detected game folder, because some of its files exceed the maximum {context.Platform} path length.\nIf you need help fixing this error, see https://smapi.io/help\n\nAffected paths:\n {string.Join("\n ", tooLongPaths)}");
- Console.ReadLine();
- return;
- }
- }
Console.Clear();
diff --git a/src/SMAPI.Toolkit/Utilities/PathUtilities.cs b/src/SMAPI.Toolkit/Utilities/PathUtilities.cs
index 1d378042..2e9e5eac 100644
--- a/src/SMAPI.Toolkit/Utilities/PathUtilities.cs
+++ b/src/SMAPI.Toolkit/Utilities/PathUtilities.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections.Generic;
using System.Diagnostics.Contracts;
using System.IO;
using System.Linq;
@@ -150,32 +149,5 @@ namespace StardewModdingAPI.Toolkit.Utilities
{
return !Regex.IsMatch(str, "[^a-z0-9_.-]", RegexOptions.IgnoreCase);
}
-
- /// <summary>Get the paths which exceed the OS length limit.</summary>
- /// <param name="rootPath">The root path to search.</param>
- internal static IEnumerable<string> GetTooLongPaths(string rootPath)
- {
- if (!Directory.Exists(rootPath))
- return new string[0];
-
- return Directory
- .EnumerateFileSystemEntries(rootPath, "*.*", SearchOption.AllDirectories)
- .Where(PathUtilities.IsPathTooLong);
- }
-
- /// <summary>Get whether a file or directory path exceeds the OS path length limit.</summary>
- /// <param name="path">The path to test.</param>
- internal static bool IsPathTooLong(string path)
- {
- try
- {
- _ = Path.GetFullPath(path);
- return false;
- }
- catch (PathTooLongException)
- {
- return true;
- }
- }
}
}
diff --git a/src/SMAPI/Framework/Logging/LogManager.cs b/src/SMAPI/Framework/Logging/LogManager.cs
index dbcf8934..5a291d0a 100644
--- a/src/SMAPI/Framework/Logging/LogManager.cs
+++ b/src/SMAPI/Framework/Logging/LogManager.cs
@@ -250,24 +250,7 @@ namespace StardewModdingAPI.Framework.Logging
/// <param name="exception">The exception details.</param>
public void LogFatalLaunchError(Exception exception)
{
- switch (exception)
- {
- // path too long exception
- case PathTooLongException _:
- {
- string[] affectedPaths = PathUtilities.GetTooLongPaths(Constants.ModsPath).ToArray();
- string message = affectedPaths.Any()
- ? $"SMAPI can't launch because some of your mod files exceed the maximum path length on {Constants.Platform}.\nIf you need help fixing this error, see https://smapi.io/help\n\nAffected paths:\n {string.Join("\n ", affectedPaths)}"
- : $"The game failed to launch: {exception.GetLogSummary()}";
- this.MonitorForGame.Log(message, LogLevel.Error);
- }
- break;
-
- // generic exception
- default:
- this.MonitorForGame.Log($"The game failed to launch: {exception.GetLogSummary()}", LogLevel.Error);
- break;
- }
+ this.MonitorForGame.Log($"The game failed to launch: {exception.GetLogSummary()}", LogLevel.Error);
}
/****