Как работать с путями при написании командлета 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);
37
задан pnuts 16 November 2015 в 22:27
поделиться