* update string extensions IsFullPath to support more filepaths with new built-in Path.IsPathFullyQualified * resolve TODO to switch to Path.IsPathFullyQualified supported from .NET Standard 2.1 * Use content root instead of web root for uploaded images * Un-break a breaking change * handle special parsing of AngularJS json response * change htmlId selector to support html id's with numbers * remove bad test case * test IsFullPath without tricky UNC paths that are not useful Co-authored-by: Bjarke Berg <mail@bergmania.dk>
39 lines
926 B
C#
39 lines
926 B
C#
using Umbraco.Cms.Core.Hosting;
|
|
|
|
namespace Umbraco.Cms.Core.IO;
|
|
|
|
public class IOHelperLinux : IOHelper
|
|
{
|
|
public IOHelperLinux(IHostingEnvironment hostingEnvironment)
|
|
: base(hostingEnvironment)
|
|
{
|
|
}
|
|
|
|
public override bool PathStartsWith(string path, string root, params char[] separators)
|
|
{
|
|
// either it is identical to root,
|
|
// or it is root + separator + anything
|
|
if (separators == null || separators.Length == 0)
|
|
{
|
|
separators = new[] { Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar };
|
|
}
|
|
|
|
if (!path.StartsWith(root, StringComparison.Ordinal))
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (path.Length == root.Length)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
if (path.Length < root.Length)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
return separators.Contains(path[root.Length]);
|
|
}
|
|
}
|