Программирование >>  Автоматически обновляемые приложения 

1 ... 141 142 143 [ 144 ] 145 146 147 ... 170


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. Загрузка файла на локальный компьютер



1 ... 141 142 143 [ 144 ] 145 146 147 ... 170

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