|
Программирование >> Автоматически обновляемые приложения
string remoteUri = http: rusproject.narod.ru/image/ ; string fileName = ruspro.gif , myStringWebResource = null; Создаем экземпляр класса WebClient WebClient myWebClient = new WebClient(); Соединим имя домена с именем файла myStringWebResource = remoteUri + fileName; textBoxl.Text = Загружаем файл + fileName + из + myStringWebResource + \r\n ; Загрузим файл и сохраним его в локальной файловой системе myWebClient.DownloadFile(myStringWebResource, с:\\ + fileName); textBoxl.Text += Файл + fileName + из + myStringWebResource + успешно загружен + \r\n ; textBoxl.Text += Загруженный файл сохранен на диске С: ; Примечание Примеры проверки подкпючения и загрузки файла находятся в папке Win-Inet на прилагаемом диске. Передача файлов по протоколу FTP в .NET Framework 2.0 появились классы, позволяющие разрабатывать приложения, которые могут использовать протокол FTP. До этого приходилось использовать неуправляемые функции Windows API. Я расскажу об основных приемах, используемых в программах такого рода. Для начала надо объявить необходимые пространства имен: using System.NET; using System.10; Пространство имен System.NET необходимо для подключения классов, работающих с протоколом FTP, а пространство имен System, ю позволит нам проводить необходимые манипуляции с файлами. Далее надо придерживаться следующей последовательности: 1. Создать объект FtpWebRequest, КОТОрыЙ ПОЗВОЛИТ ПОДКЛЮЧИТЬСЯ к FTP- серверу. Закачка файла на FTP-сервер Сначала мы закачаем файл на FTP-сервер. Для примера нам понадобится существующий сервер, с которым можно соединиться. Если у вас нет такого сервера, то можете завести себе собственную страницу на http: narod.yandex.ru, и у вас будет возможность закачивать файлы на сервер ftp.narod.ru, используя логин и пароль, полученный при регистрации. Именно к этому серверу мы и обращаемся в листинге 16.11. Листинг 16,11. Закачка файла на FTP-сервер using System.Net; using System.10; Закачка файла на FTP-сервер private void FTPUploadFile(string filename) Filelnfo filelnfo = new Filelnfo(filename); string uri = ftp: + ftp.narod.ru + / + filelnfo.Name; FtpWebRequest reqFTP; Создаем объект FtpWebRequest, используя заданный адрес 2. Установить в свойстве Method созданного объекта необходимый тип операции с FTP-сервером (закачка файла на сервер, скачивание файла с сервера, создание папки и т. п.). 3. Сделать требуемые настройки соединения (поддержка SSL, бинарный режим передачи файлов и т. д.). 4. Указать данные для подключения к РТР-серверу (логин и пароль). 5. Выполнить указанную команду. 6. Получить поток (если требуется). 7. Закрыть запрос и открытые потоки. Теперь приведем несколько простых примеров, которые наиболее часто используются при соединении с FTP-сервером. reqFTP = (FtpWebRequest)FtpWebRequest.Create( new Uri( ftp: + ftp.narod.ru + / + fileinfo.Name)); Используем учетную запись для доступа Используйте реальные данные В этом примере используются вымышленные данные reqFTP.Credentials = new NetworkCredential( csharp , narod ); По умолчанию свойство KeepAlive равно true, если соединение не обрывается после выполнения команды reqFTP.KeepAlive = false; Задаем нужную команду. reqFTP.Method = WebRequestMethods.Ftp.UploadFile; Указываем тип данных при передаче файлов reqFTP.UseBinary = true; Сообш;аем серверу о размере закачиваемого файла reqFTP.ContentLength = fiieinfo.Length; Устанавливаем размер буфера в 2 Кбайт int buffLength = 2048; byte[] buff = new byte[buffLength]; int contentLen; Открываем файловый поток (System.10.FileStream) для чтения FileStream fs = fileinfо.OpenRead(); try { Поток, в который записывается закачиваемый на сервер файл Stream strm = reqFTP.GetRequestStream(); Читаем из файлового потока по 2 Кбайт за раз contentLen = fs.Read(buff, 0, buffLength); Пока файл не закончился while (contentLen != 0) { Запишем прочитанное в поток закачки strm.Write(buff. О, contentLen);
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |