Приложение, которое подключается к ftp-серверу и скачивает rar-архив - C#
Формулировка задачи:
Необходимо было, создать просто консольное приложение, которое подключается к ftp-серверу и скачивает rar-архив в корневую папку где и сама программа, далее запускается winrar и распаковывает с заменой файлы в нужный каталог. Беда в том ,что после подключения к ftp-серверу ПК начинает постоянно пикать и программа и консоль выдает ерунду и отказывается работать. Подскажите пожалуйста, в чем мои ошибки. С библиотекой winrar не работал. Вот код:
Листинг программы
- using System;
- using System.Diagnostics;
- using System.IO;
- using System.Net;
- using System.Threading;
- namespace UpdateDataBaseFtpServer
- {
- class appStart
- {
- static void Main(string[] args)
- {
- Console.WriteLine("Start download rar-archive. Plase wait...");
- try
- {
- // Get the object used to communicate with the server.
- FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://xxx.xxx.xxx.xxx/NA_OSP/sklad.rar");
- request.Method = WebRequestMethods.Ftp.DownloadFile;
- // This example assumes the FTP site uses anonymous logon.
- request.Credentials = new NetworkCredential("xxxx", "xxxx");
- FtpWebResponse response = (FtpWebResponse)request.GetResponse();
- Console.WriteLine("Logon OK!");
- Stream responseStream = response.GetResponseStream();
- StreamReader reader = new StreamReader(responseStream);
- Console.WriteLine(reader.ReadToEnd());
- Console.WriteLine("Download Complete, status {0}", response.StatusDescription);
- reader.Close();
- response.Close();
- ProcessStartInfo ps = new ProcessStartInfo();
- ps.FileName = @"C:\Program Files\WinRAR\RAR.exe";
- ps.Arguments = @"e o+ C:\FTP\sklad.rar C:\RAB\SKLAD"; // key e and 0+ for with the replacement
- Console.WriteLine("Replace old files. Plase wait...");
- Process procCommand = Process.Start(ps);
- Console.WriteLine("It's done!");
- Thread.Sleep(5000);
- procCommand.WaitForExit();
- }
- catch (Exception ex)
- {
- Console.WriteLine("Eror: " + ex);
- Console.ReadLine();
- }
- }
- }
- }
Решение задачи: «Приложение, которое подключается к ftp-серверу и скачивает rar-архив»
textual
Листинг программы
- using System;
- using System.Diagnostics;
- using System.IO;
- using System.Net;
- using System.Threading;
- namespace UpdateDataBaseFtpServer
- {
- class appStart
- {
- static void Main(string[] args)
- {
- int Length = 2048;
- Byte[] buffer = new Byte[Length];
- Console.WriteLine("Start. Plase wait...");
- Thread.Sleep(5000);
- try
- {
- string inputfilepath = @"C:\FTP\sklad.rar";
- string ftphost = "xxx.xxx.xxx.xxx";
- string ftpfilepath = "/NA_OSP/sklad.rar";
- string ftpfullpath = "ftp://" + ftphost + ftpfilepath;
- using (WebClient request = new WebClient())
- {
- request.Credentials = new NetworkCredential("asdsf", "asfsa");
- Console.WriteLine("Logon OK!");
- byte[] fileData = request.DownloadData(ftpfullpath);
- Console.WriteLine("Start download!");
- using (FileStream file = File.Create(inputfilepath))
- {
- file.Write(fileData, 0, fileData.Length);
- file.Close();
- }
- Console.WriteLine("Download Complete!");
- }
- ProcessStartInfo ps = new ProcessStartInfo();
- ps.FileName = @"C:\Program Files\WinRAR\RAR.exe";
- ps.Arguments = @"e o+ C:\FTP\sklad.rar C:\RAB\SKLAD"; //
- Console.WriteLine("Replace old files. Plase wait...");
- Process procCommand = Process.Start(ps);
- Console.WriteLine("It's done!");
- Thread.Sleep(5000);
- procCommand.WaitForExit();
- }
- catch (Exception ex)
- {
- Console.WriteLine("Eror: " + ex);
- Console.ReadLine();
- }
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д