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

Место общения программистов C#
Ответить
Anonymous
 Как мне обращаться с путями при написании командлета PowerShell?

Сообщение Anonymous »

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

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

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

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

LiteralPath = Path.GetFullPath(LiteralPath);


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

EDIT2: это лучше, чтобы вы не запутались. с текущим каталогом пользователя, вам следует установить его обратно.

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


Подробнее здесь: https://stackoverflow.com/questions/850 ... ell-cmdlet
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»