首页 > 解决方案 > 创建可能与 WinSCP 409 冲突部分存在的目录结构

问题描述

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

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

假设我需要创建的远程服务器上的目录是

MyProduct/BuildOutput/bin

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

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

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

有什么方法可以创建一个已经部分存在的完整目录结构,而无需编写复杂的程序来执行此操作?

标签: powershellwinscpwinscp-net

解决方案


WinSCPCreateDirectory方法不支持创建整个目录结构。只是一个目录。您将不得不自己构建结构。试试这个方法:

    [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)
    }

推荐阅读