Есть ли способ, основанный на C# способе Powershell, проверить, существует ли путь, и создать его при необходимости? - PullRequest
0 голосов
/ 10 апреля 2020

РЕДАКТИРОВАТЬ : Кто-то определил мой вопрос как дубликат этого . Однако они НЕ связаны. Мой вопрос касается проверки / создания пути через Powershell на удаленной машине, а не на машине, на которой выполняется код.


Я подключаюсь к удаленной машине через C# Библиотеки Powershell и хотят проверить с помощью кода C#, существует ли указанный путь к файлу на этом компьютере или нет, и создать его при необходимости через powershell API / cmdlets . В типичном Powershell это будет выглядеть так:

$testPath = "$env:USERPROFILE\somePath";

if (! (Test-Path $testPath))
{
    mkdir $testPath | Out-Null
}

Но каков C# эквивалент Powershell для приведенного выше кода ??

Это код C#, который у меня так далеко:

using (var psShell = PowerShell.Create())
{
    using (var remoteRunspace = RunspaceFactory.CreateRunspace(CreateSession()))
    {
        remoteRunspace.Open();
        psShell.Runspace = remoteRunspace;

        string testPath = remoteRunspace.SessionStateProxy.PSVariable.GetValue("env:USERPROFILE").ToString() + @"\somePath";

        //Need to add code here to check if testPath exists or not, and to create it if it doesn't exist
    }
}

Но я не знаю C# эквивалент Test-Path ..

Примечание: я уже знаю, что один наивный способ достижения sh это добавить скрипт для запуска Test-Path, et c. но я не хочу этого делать, потому что это не выглядит красиво. Это создает жесткую зависимость от командлета, который в будущем может измениться, что может нарушить мой код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...