WindowsDriveNodeResolver
class WindowsDriveNodeResolver
using Relativity.DataTransfer.Nodes.Internal.Helpers;
using System;
using System.Text;
namespace Relativity.DataTransfer.Nodes.Internal.Utilities
{
internal class WindowsDriveNodeResolver
{
public static IDrive Resolve(string path, INodeContext context, StringBuilder stringBuilder)
{
if (NullNodeContext.Instance == context) {
string rootName = GetRootName(stringBuilder);
if (!IsUncPath(path))
return new LocalDrive($"{rootName}{PathConstants.DirectorySeparatorAsChar}");
return new UncDrive(PathConstants.UncPathShortPrefix + rootName);
}
return new RemoteDrive(context);
}
private static string GetRootName(StringBuilder stringBuilder)
{
return stringBuilder.CutOffBy(PathConstants.DirectorySeparatorAsChar);
}
private static bool IsUncPath(string path)
{
return path.StartsWith(PathConstants.UncPathShortPrefix, StringComparison.Ordinal);
}
}
}