Код C # для размещения пути к файлу изменен с windows на ftp (с паролем пользователя) - PullRequest
3 голосов
/ 17 марта 2011

В своем приложении я загружаю файлы с сетевого диска на локальный, а затем обрабатываю их.

Теперь моя проблема в том, что сетевой путь изменен с windows на ftp, и для доступа к нему нужен пароль пользователя.

Код моего приложения написан на C #, и он не может принять это изменение напрямую, как мне позаботиться об этом в коде - с минимальными усилиями.

Спасибо

Ответы [ 2 ]

1 голос
/ 17 марта 2011

Самый простой способ использовать ftp в вашем приложении - это получить один из множества клиентских пакетов ftp.На работе мы используем ftp-клиент Xceed, и он работает нормально, хотя и немного дорого.Вот проект с открытым исходным кодом, который я нашел, прибегая к помощи .NET FTP-клиента:

http://www.codeproject.com/KB/IP/FtpClient.aspx

0 голосов
/ 17 марта 2011

Добавьте интерфейс (скажем, IFileHandler), который определяет контракт на получение удаленного файла, затем реализуйте то, что у вас есть, чтобы получить от сетевого диска, за одной реализацией этого интерфейса (скажем, под названием NetworkFileHandler). ).

Затем создайте вторую реализацию (скажем, FtpFileHandler) этого интерфейса, которая получает файл с FTP-сайта. Во второй реализации вы предоставляете дополнительную информацию (имя пользователя и пароль) конструктору класса FtpFileHandler.

Затем, чтобы изменить приложение на одно или другое, вам просто нужно изменить, какую реализацию интерфейса вы используете.

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

Интерфейс IFileHandler может выглядеть примерно так:

interface IFileHandler
{
   void SaveFileLocally(string sourceFile, DirectoryInfo targetLocation);
}

хотя то, как он должен выглядеть, будет зависеть от того, что вам нужно сделать.

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