diff --git a/src/Umbraco.Core/IO/IIOHelper.cs b/src/Umbraco.Core/IO/IIOHelper.cs index ee36b2a96b..42ca804f44 100644 --- a/src/Umbraco.Core/IO/IIOHelper.cs +++ b/src/Umbraco.Core/IO/IIOHelper.cs @@ -4,11 +4,8 @@ namespace Umbraco.Core.IO { public interface IIOHelper { - // TODO: There is no need for this, we should just use Path.DirectorySeparatorChar which is cross platform, no need for an abstraction? - char DirSepChar { get; } - string FindFile(string virtualPath); - + // TODO: This is the same as IHostingEnvironment.ToAbsolute string ResolveUrl(string virtualPath); diff --git a/src/Umbraco.Core/IO/IOHelper.cs b/src/Umbraco.Core/IO/IOHelper.cs index 91b1d70a11..a71a307e01 100644 --- a/src/Umbraco.Core/IO/IOHelper.cs +++ b/src/Umbraco.Core/IO/IOHelper.cs @@ -22,8 +22,6 @@ namespace Umbraco.Core.IO // static compiled regex for faster performance //private static readonly Regex ResolveUrlPattern = new Regex("(=[\"\']?)(\\W?\\~(?:.(?![\"\']?\\s+(?:\\S+)=|[>\"\']))+.)[\"\']?", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace); - public char DirSepChar => Path.DirectorySeparatorChar; - //helper to try and match the old path to a new virtual one public string FindFile(string virtualPath) { @@ -86,9 +84,10 @@ namespace Umbraco.Core.IO if (result != null) return result; } + var dirSepChar = Path.DirectorySeparatorChar; var root = Assembly.GetExecutingAssembly().GetRootDirectorySafe(); - var newPath = path.TrimStart('~', '/').Replace('/', DirSepChar); - var retval = root + DirSepChar.ToString(CultureInfo.InvariantCulture) + newPath; + var newPath = path.TrimStart('~', '/').Replace('/', dirSepChar); + var retval = root + dirSepChar.ToString(CultureInfo.InvariantCulture) + newPath; return retval; } diff --git a/src/Umbraco.Tests/Web/Controllers/AuthenticationControllerTests.cs b/src/Umbraco.Tests/Web/Controllers/AuthenticationControllerTests.cs index c09842f730..a162b0cd48 100644 --- a/src/Umbraco.Tests/Web/Controllers/AuthenticationControllerTests.cs +++ b/src/Umbraco.Tests/Web/Controllers/AuthenticationControllerTests.cs @@ -75,10 +75,10 @@ namespace Umbraco.Tests.Web.Controllers } else { - var baseDir = IOHelper.MapPath("").TrimEnd(IOHelper.DirSepChar); + var baseDir = IOHelper.MapPath("").TrimEnd(Path.DirectorySeparatorChar); HttpContext.Current = new HttpContext(new SimpleWorkerRequest("/", baseDir, "", "", new StringWriter())); } - + var usersController = new AuthenticationController( new TestUserPasswordConfig(), Factory.GetInstance(), diff --git a/src/Umbraco.Web/Editors/BackOfficeAssetsController.cs b/src/Umbraco.Web/Editors/BackOfficeAssetsController.cs index 7b4f036313..d7bfc5c1fa 100644 --- a/src/Umbraco.Web/Editors/BackOfficeAssetsController.cs +++ b/src/Umbraco.Web/Editors/BackOfficeAssetsController.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Web.Http; using Umbraco.Core.Composing; @@ -17,7 +18,7 @@ namespace Umbraco.Web.Editors public BackOfficeAssetsController(IIOHelper ioHelper, ILogger logger, IGlobalSettings globalSettings) { - _jsLibFileSystem = new PhysicalFileSystem(ioHelper, logger, globalSettings.UmbracoPath + ioHelper.DirSepChar + "lib"); + _jsLibFileSystem = new PhysicalFileSystem(ioHelper, logger, globalSettings.UmbracoPath + Path.DirectorySeparatorChar + "lib"); } [HttpGet] diff --git a/src/Umbraco.Web/Editors/TinyMceController.cs b/src/Umbraco.Web/Editors/TinyMceController.cs index ff7fdd980e..fd69a94096 100644 --- a/src/Umbraco.Web/Editors/TinyMceController.cs +++ b/src/Umbraco.Web/Editors/TinyMceController.cs @@ -105,7 +105,7 @@ namespace Umbraco.Web.Editors //var mediaItemName = fileName.ToFriendlyName(); var currentFile = file.LocalFileName; - var newFilePath = imageTempPath + _ioHelper.DirSepChar + safeFileName; + var newFilePath = imageTempPath + Path.DirectorySeparatorChar + safeFileName; var relativeNewFilePath = _ioHelper.GetRelativePath(newFilePath); try