У меня есть веб-приложение, которое генерирует и загружает документы (Word, PDF и т. Д.) На сервер. Сейчас я пишу сценарий Power Shell, который сначала перенесет эти файлы в папку ftp. Эта часть сделана. Второй скрипт будет запускаться на моем резервном сервере каждый день и загружать все папки / файлы с этого ftp-сервера на мой резервный сервер. Проблема в том, что я не могу загрузить папки. Его легко загружать файлы, но я не могу найти какой-либо фрагмент кода, который в основном позволяет мне либо загрузить всю папку (с содержимым), либо, по крайней мере, позволить мне перебирать содержимое папки.
Если бы я знал папки, то у меня не было бы проблемы, я мог бы просто жестко закодировать функцию для каждой папки, но документы загружались в динамические папки (имена папок генерируются приложением). Я просто знаю основную папку. Мне нужно пройти через это. И архивирование не очень хорошая идея, поскольку размер папки составляет около 1 гигабайта Не хочу каждый день передавать по 1 кабелю.
Любая помощь в этом отношении будет принята с благодарностью.
Спасибо.
----------- UPDATE --------
gci работает только для файлов в локальной системе (здесь я могу ошибаться). Я имею в виду перебор папок и файлов ftp.
Вот как я прохожу локально:
$ GciFiles = gci C: \ ParentFolder \ SubFolder \ -recurse | Где {$ _. Attribute -ne "Directory"}
foreach ($ file in $ GciFiles)
{}
Теперь это все отлично, так как foreach может дать мне имя папки и имя файла. Однако я хочу сделать то же самое с кодом FTP:
$ ftphost = "ftplocation \ Parentfolder \"
учетные данные здесь
сделать объект ftp_web_request
$ ftprequest.Method = [System.Net.WebRequestMethods + Ftp] :: ListDirectory
$ ftpresponse = $ ftprequest.GetResponse ()
$ responseStream = $ ftpresponse.GetResponseStream ()
$ readStream = новый объект System.IO.StreamReader $ responseStream
while (($ line = $ readStream.ReadLine ()) -ne $ null)
{
$ line здесь дает нам имя файла
# функция для загрузки файла
}
Теперь все в порядке. ПРЕДОСТАВЛЯЕТСЯ, Я ЗНАЮ ПАПКУ, КОТОРУЮ Я ХОЧУ ЗАГРУЗИТЬ ФАЙЛЫ. в каждой папке GUID есть несколько файлов.
Как же я полагаю, что GCI по этому коду ???
То, что я сделал, было в том же коде, сначала получил имя каждой папки, затем имел другую функцию (то же самое, за исключением того, что теперь я знаю имя папки) и в этой функции, пока цикл загружает файлы. Однако это не работает. Сценарий просто продолжает выполняться. Я глубокая вода! Понятия не имею, что на земле делать!