Gerrit de Beer Ответов: 2

Как перенести всю папку и подпапки по сети с помощью TCP


Я смотрю несколько видео о том, как это сделать, но они показывают только, как сделать клиент и сервер в C# отправкой отдельных файлов по сети с помощью TCP. но я хочу знать, как я могу изменить его так, чтобы я мог выбрать папки с вложенными папками и отправить его по сети

Правка: я должен работать как резервная программа. Мне нужно сделать резервную копию определенной папки на сетевом компьютере и сохранить ее на своем компьютере

Что я уже пробовал:

Я попытался изменить видео на youtube, но безуспешно

CHill60

Этот раздел "Что я пробовал:" предназначен для кода, который вы пробовали.

Gerrit de Beer

Я попробовал добавить туда код, но не все может поместиться там

2 Ответов

Рейтинг:
4

Jochen Arndt

Без программирования:
Установите SCP или FTP-сервер на удаленной машине и используйте соответствующее клиентское программное обеспечение локально.

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

Для обработки также вложенных папок перечисление должно быть рекурсивным:
Если текущий элемент является папкой, создайте полный путь из фактического, добавьте имя вложенной папки и вызовите функцию с этим путем.
Примеры можно найти, поискав в интернете "рекурсивный список каталогов c#".


Gerrit de Beer

Может быть, вы можете привести мне пример того, как будет выглядеть код?

Jochen Arndt

Какой код?
Рекурсивный?

void ProcessFilesRecursive(string dir)
{
 foreach (строка d в каталоге.GetDirectories (реж.))
  ProcessFilesRecursive(д);
 foreach (строка f в каталоге.GetFiles (реж.))
  SendFile(f);
}

Рейтинг:
17

RickZeeland

Вот статья о CodeProject, которая может помочь вам начать работу, вы можете использовать FTP library который включен в исходный код: FTP-приложение для Windows[^]
Я бы посоветовал не использовать версию "Win7", так как это выглядит немного странно на более новых версиях Windows.


Gerrit de Beer

Проблема в том, что мне нужно использовать соединение TCP / Socket. Я не хочу использовать FTP.

RickZeeland

Вы могли бы написать что-то простое с помощью WebClient, но еще проще было бы использовать RoboCopy, см. http://burpee.smccme.edu/studenthowtos/robocopy.htm