Программирование >>  Программирование с использованием ajax 

1 ... 333 334 335 [ 336 ] 337 338 339 ... 396


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-сврвера



1 ... 333 334 335 [ 336 ] 337 338 339 ... 396

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика