Exemple #1
0
        private void SetPathType()
        {
            if (string.IsNullOrWhiteSpace(OriginalPath))
            {
                Type = PathType.Unresolved;
                Path = "";
                return;
            }

            if (PathVariables.ContainsAction(OriginalPath))
            {
                Path = OriginalPath;
                Type = PathType.ActionVariable;
                return;
            }

            var parsedPath = PathVariables.GetReplacedPath(OriginalPath);

            if (!Uri.TryCreate(parsedPath, UriKind.Absolute, out var pathUri))
            {
                TryResolvePath(parsedPath);
                return;
            }

            if (!pathUri.IsFile) // try to open using explorer.exe
            {
                Type = PathType.UnknownProtocol;
                Path = pathUri.AbsoluteUri;
            }
            else
            {
                Type = PathType.File;
                Path = pathUri.LocalPath;
            }
        }