Как мне работать с путями при написании командлета PowerShell?

Как правильно получить файл в качестве параметра при написании командлета C #? Пока у меня просто есть свойство LiteralPath (в соответствии с соглашением об именах их параметров), которое является строкой. Это проблема, потому что вы просто получаете то, что напечатано в консоли; который может быть полным или относительным путем.

Использование Path.GetFullPath (string) не работает. Кажется, я сейчас нахожусь на ~, а я нет. Та же проблема возникает, если я изменяю свойство из строки в FileInfo.

РЕДАКТИРОВАТЬ: Для всех, кто заинтересован, этот обходной путь работает для меня:

    SessionState ss = new SessionState();
    Directory.SetCurrentDirectory(ss.Path.CurrentFileSystemLocation.Path);

    LiteralPath = Path.GetFullPath(LiteralPath);

LiteralPath является строковым параметром. Мне все еще интересно узнать, каков рекомендуемый способ обработки путей к файлам, которые передаются в качестве параметров.

РЕДАКТИРОВАТЬ 2: Это лучше, так что вы не должны связываться с текущим каталогом пользователей, вы должны установить его обратно.

            string current = Directory.GetCurrentDirectory();
            Directory.SetCurrentDirectory(ss.Path.CurrentFileSystemLocation.Path);
            LiteralPath = Path.GetFullPath(LiteralPath);
            Directory.SetCurrentDirectory(current);

Ответы на вопрос(2)

Ваш ответ на вопрос