ftp-скрипт powershell для веб-сайта - PullRequest
1 голос
/ 22 июля 2011

У меня есть следующий скрипт (адаптированный отсюда) для загрузки файлов через ftp для веб-сайта.

$files = @(dir -Path $path)

  foreach ($file in $files) {
    if ($file.GetType().FullName -eq 'System.IO.FileInfo') {
      "uploading $file"
      $uri = New-Object System.Uri($ftp+$file.Name)
      $webclient.UploadFile($uri, $file.FullName)
    }elseif ($file.GetType().FullName -eq 'System.IO.DirectoryInfo') {
      Recurse $file.FullName
    }

Это прекрасно работает, если все файлы попадают в корень каталога.У меня проблема в том, что под рутом есть подкаталоги для сайта.Это помещает (как и ожидалось) все файлы в корень независимо от того, где они существуют в фактической структуре каталогов.

Существует ли простой способ передачи всех файлов при сохранении структуры каталогов источника.Я уверен, что мог бы что-то собрать, используя split-path, но я просто хотел убедиться, что я ничего не пропустил, прежде чем идти дальше.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 23 июля 2011

За запрос конвертируется из комментариев:

geekswithblogs.net имеет решение для рекурсивного копирования по FTP.

0 голосов
/ 22 июля 2011

Возможно Документация Microsoft может помочь здесь :

URI может быть относительным или абсолютным. Если URI имеет форму «ftp://contoso.com/%2fpath» (% 2f является экранированным символом «/»), тогда URI является абсолютным, и текущим каталогом является / path. Однако, если URI имеет вид «ftp://contoso.com/path», сначала .NET Framework входит на FTP-сервер (используя имя пользователя и пароль, установленные свойством Credentials), затем текущий каталог. установлен в /path.

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