Как правильно получить файл в качестве параметра при написании командлета 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);