|
Программирование >> Программирование с использованием ajax
9. Чтобы открыть конкретный каталог на сервере, добавьте обработчик button OpenDirectory Click события Click к кнопке buttonOpenDirectory. Добавьте код в этот обработчик, как показано в следующем примере: private void buttonOpenDirectory Click(object sender, RoutedEventArgs e) { Cursor currentCursor = this.Cursor; FtpWebResponse response = null; Stream stream = null; this.Cursor = Cursors.Wait; string subDirectory = listFiles.SelectedValue.ToString().Trim(); if (serverDirectory != null) serverDirectory += / + subDirectory; else { serverDirectory = subDirectory; Uri baseUri = new Uri(textServer.Text); Uri uri = new Uri(baseUri, serverDirectory); FtpWebRequest request = (FtpWebRequest)WebRequest.Create (uri); request.Credentials = new NetworkCredential(textUserName.Text, passwordBox.Password); request.Method = WebRequestMethods.Ftp.ListDirectory; response = (FtpWebResponse)request.GetResponse(); stream = response.GetResponseStream(); FillDirectoryList(stream); catch (WebException ex) { MessageBox.Show(ex.Message, Error FTP Client , MessageBoxButton.OK, MessageBoxImage.Error); finally { if (response != null) response.Close (); if (stream != null) stream.Close(); this.Cursor = currentCursor; 10. Для загрузки файла с сервера добавьте обработчик buttonOetFileClick события Click к кнопке buttonOetFile. Поместите следующий код в этот обработчик события: private void buttonGetFile Click(object sender, RoutedEventArgs e) { Cursor currentCursor = this.Cursor; FtpWebResponse response = null; Stream inStream = null; Stream outStream = null; this.Cursor = Cursors.Wait; Uri baseUri = new Uri(textServer.Text); string filename = listFiles.SelectedValue.ToString().Trim(); string fullFilename = serverDirectory + (3 / + filename; Uri uri = new Uri(baseUri, fullFilename); FtpWebRequest request = (FtpWebRequest)WebRequest.Create(uri) ; request.Credentials = new NetworkCredential(textUserName.Text, passwordBox.Password); request.Method = WebRequestMethods.Ftp.DownioadFiie; request.UseBinary = checkBoxBinary.IsChecked ?? false; response = (FtpWebResponse)request.GetResponse(); inStream = response.GetResponseStream() ; SaveFileDialog SaveFileDialog = new SaveFileDialog(); SaveFileDialog.FileName = filename; if (SaveFileDialog.ShowDialog() == true) { outStream = File.OpenWrite(SaveFileDialog.FileName); byte[] buffer = new byte[8192]; int size = 0; while ((size = inStream.Read(buffer, 0, 8192))> 0) { outStream.Write(buffer, 0, size); catch (WebException ex) { MessageBox.Show(ex.Message, Error FTP Client , MessageBoxButton.OK, MessageBoxImage.Error); finally { if (inStream != null) inStream.Close(); if (outStream != null) outStream.Close(); if (response != null) response.Close (); this.Cursor = currentCursor; 11. Чтобы активизировать кнопки Open Directory (Открыть каталог) и Get File (Получить файл), необходимо добавить обработчик события SelectionChanged поля списка listFiles. Присвойте этому обработчику события имя listFiles SelectionChanged. private void listFiles SelectionChanged(object sender, RoutedEventArgs e) { buttonGetFile. IsEnabled = true ; buttonOpenDirectory. IsEnabled = true; 12. После компмяции прможение можно испытать. В результате запуска приложение отобразит экран, подобный показанному на рис 32.8. Введите имя FTP-cep-вера, к которому нужно подключиться (например, ftp: / /ftp .microsof t. com) и щелкните на кнопке Open (Открыть). FTP-серверы, которые поддерживают анонимных пользователей, принимают имя пользователя Anonynious. Некоторые FTP-серверы, допускающие анонимных пользователей, выполняют проверку пароля, представленного в формате допустимого адреса электронной почты. Это поведение реализуется не для обеспечения безопасности, а для записи запросов файлов в журнальный файл. Рис. 32.8. Работа приложения FtpClient После успешной установки соединения файлы и каталоги FTP-сервера отображаются в поле списка, как показано на рис. 32.9. Теперь можно открывать другие каталоги, щелкая на кнопке Open Directory, ми загружать файлы, щелкая на кнопке Get File. $ rv n Hp:rtp.microsoncom Usemame Anonymoua Password i p ropiy PS5 RtsKK Services В4Г>ЛГуМО<1 Puc. 32.9. Файлы и каталоги FTP-сврвера
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |