private void InternalBuildForRelativeFile()
{
ValidatePathNotRooted();
if (_validator.HasError) return;
var filename = new FilenameParser(_fullPath, _validator);
if (_validator.HasError) return;
var folders = FoldersParser.WithFilename(filename.PathWithoutFilename, _validator);
if (_validator.HasError) return;
_canonical = filename.AppendTo(folders.Canonified);
ValidateCanonicalPathLength(); // TODO: Should path length be validated for relative paths?
}