创建可能与WinSCP 409冲突部分存在的目录结构

时间:2018-10-23 14:19:24

标签: powershell winscp winscp-net

我使用WinSCP + Powershell将Jenkins的构建结果自动传输到我们的共享服务器,以便QA和Dev团队可以轻松地访问它。

WinSCP是必需的,因为它只能通过Webdav协议进行传输。不用担心!

让我们说我需要在远程服务器上创建的目录是

MyProduct/BuildOutput/bin

现在,如果我使用完全丢失的文件夹结构执行以下命令a,则可以完美运行。

$session.CreateDirectory("MyProduct/BuildOutput/bin")

但是,如果说“ MyProduct / BuildOutput”结构已经存在,但“ bin”丢失,则WinSCP会出现409冲突错误。

有什么方法可以创建已经部分存在的完整目录结构,而不必编写复杂的程序来做到这一点?

1 个答案:

答案 0 :(得分:2)

WinSCP CreateDirectory方法不支持整个目录结构的创建。只是单个目录。您将必须自行构建结构。尝试这种方式:

    [Array]$dir = 'hello/this/is/test/directory/structure' -split '/'
    $path = [System.String]::Empty
    for ($i=0; $i-lt $dir.Count; $i++){
        if ($i -lt $dir.Count){$path+= $dir[$i] + '/'}
        $session.CreateDirectory($path)
    }