|
Программирование >> Автоматически обновляемые приложения
private void buttonl Click(object sender, EventArgs e) { FTPUploadFile(@ c:\ruspro.gif ); Получение оглавления папки Мы рассмотрели пример закачки файла. Предположим, что теперь мы хотим, наоборот, скачать файл с FTP-сервера к себе на жесткий диск. Для этого нам необходимо получить список файлов и папок, расположенных на сервере. Пример, приведенный в листинге 16.12, демонстрирует, как получить такой список файлов. .....:.:.......1 public string[] GetFileList() { string[] downloadFiles; StringBuilder result = new StringBuilder(); FtpWebRequest reqFTP; reqFTP = (FtpWebRequest)FtpWebRequest.Create( new Uri( ftp: + ftp.narod.ru + / )); reqFTP.UseBinary = true; Используйте реальные данные пользователя reqFTP.Credentials = new NetworkCredential( csharp , narod ); contentLen = fs.Read(buff, О, buffLength); Закрьшаем файловый поток и поток запроса strm. Close(); fs.Close О; catch (Exception ex) { MessageBox.Show(ex.Message, Ошибка при закачке файла ); Удаляем завершающие символы *\n result.Remove(result.ToString().LastlndexOf(\n), 1) reader.Close(); response.Close(); return result.ToString() .Split(4n *); catch (Exception ex) { MessageBox.Show(ex.Message); downloadFiles = null; return downloadFiles; private void button2 Click(object sender, EventArgs e) { Выводим список файлов string[] allFiles = GetFileList() ; foreach (string file in allFiles) listBoxl.Items.Add(file); Задаем команду получения списка файлов reqFTP.Method = WebRequestMethods.Ftp.ListDirectory; WebResponse response = reqFTP.GetResponse() ; StreamReader reader = new StreamReader(response.GetResponseStream0); string line = reader.ReadLine(); while (line != null) { result.Append(line); result.Append( \n ) ; line = reader.ReadLine0; private void FTPDownloadFile(string filePath, string fileName) { FtpWebRequest reqFTP; filePath - полный путь к папке, где должен быть создан файл fileName - имя создаваемого файла на локальном компьютере FileStream outputStream = new FileStream(filePath + \\ + fileName, FileMode.Create), reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri( ftp: + ftp.narod.ru + / + fileName)); reqFTP.Method = WebRequestMethods.Ftp.DownloadFile; reqFTP.UseBinary = true; Используйте реальные данные для логина и пароля reqFTP.Credentials = new NetworkCredential( csharp , narod ); FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse(); Stream ftpStream = response.GetResponseStream(); long cl = response.ContentLength; int bufferSize = 2048; int readCount; byte[] buffer = new byte[bufferSize]; readCount = ftpStream.Read(buffer, 0, bufferSize); while (readCount > 0) outputStream.Write(buffer, 0, readCount); readCount = ftpStream.Read(buffer, 0, bufferSize); Загрузка файлов Мы научились закачивать файл на FTP-сервер, а также просматривать структуру файлов на этом сервере. Теперь наша задача - загрузить какой-нибудь файл с сервера на свой компьютер. Она решается в листинге 16.13. Листинг 16.13. Загрузка файла на локальный компьютер
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |