Beispiel #1
0
        /// <summary>
        /// Выгружает заданный файл на FTP сервер
        /// </summary>
        /// <param name="file">Файл подлежащий выгрузке на сервер</param>
        /// <param name="destDirectory">Удаленный каталог, в который будет выгружен файл. Путь указывается относительно корневого каталога</param>
        public void UploadFile(string file, string destDirectory)
        {
            Uri        host    = new Uri(Host);
            Uri        uri     = new Uri(host, RootDirectory);
            WebRequest request = WebRequest.Create(new Uri(uri, destDirectory));

            request.Method      = WebRequestMethods.Ftp.UploadFile;
            request.Credentials = Credentials;
            request.Timeout     = System.Threading.Timeout.Infinite;

            byte[] data = File.ReadAllBytes(file);
            using (Stream stream = request.GetRequestStream()) {
                stream.Write(data, 0, data.Length);
            }
            using (FtpWebResponse resp = (FtpWebResponse)request.GetResponse()) {
                if (resp.StatusCode != FtpStatusCode.ClosingData)
                {
                    string message = string.Format("Ошибка при выгрузке файла на FTP\nХост: {0}\nФайл: {1}\nКод состояния: {2}\nТекст состояния: {3}",
                                                   host.Host, file, resp.StatusCode, resp.StatusDescription);
                    throw new Exception(message);
                }
            }

            DebugHelper.ConsoleWriteLine("Файл " + file + " выгружен на сервер " + host.Host, DebugHelper.DebugLevels.Information);
        }
Beispiel #2
0
        /// <summary>
        /// Удаляет заданный файл на FTP сервере
        /// </summary>
        /// <param name="file">Удаленный файл. Путь указывается относительно корневого каталога</param>
        public void DeleteFile(string file)
        {
            Uri        host    = new Uri(Host);
            Uri        uri     = new Uri(host, RootDirectory);
            WebRequest request = WebRequest.Create(new Uri(uri, file));

            request.Method      = WebRequestMethods.Ftp.DeleteFile;
            request.Credentials = Credentials;

            using (FtpWebResponse resp = (FtpWebResponse)request.GetResponse()) {
                if (resp.StatusCode != FtpStatusCode.FileActionOK)
                {
                    string message = string.Format("Ошибка при удалении файла на FTP\nХост: {0}\nФайл: {1}\nКод состояния: {2}\nТекст состояния: {3}",
                                                   host.Host, file, resp.StatusCode, resp.StatusDescription);
                    DebugHelper.ConsoleWriteLine(message, DebugHelper.DebugLevels.Error);
                    throw new Exception(message);
                }

                DebugHelper.ConsoleWriteLine("Файл " + file + " успешно удален", DebugHelper.DebugLevels.Information);
            }
        }