Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.65/34: Рейтинг темы: голосов - 34, средняя оценка - 4.65
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227

Upload на FTP

18.10.2018, 13:15. Показов 8809. Ответов 203
Метки ftp (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, цель => загрузить файлы на ftp, у каждого файла есть своя папка на ftp сервере, ее название совпадает с названием файла, таких файлов 200шт, нужно из загрузить на сервер, сделал и понял что н могу понять как обьеденить все это, ибо без цикла обработки файлов никак, а вытазить переменные не получается, подскажите как это решить

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace ftp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
        private List<string> a = new List<string>();
        private void button1_Click(object sender, EventArgs e)
        {
 
            MessageBox.Show("Пусто!");
 
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
             Task.Run(() => Upload());
        }
 
        private void Upload()
        {
            DirectoryInfo dir = new DirectoryInfo(@"C:\Users\Desktop\1\2");
            List<string> files = Directory.GetFiles(dir.ToString(), "*.zip", SearchOption.AllDirectories).ToList();
            
            string login = " ";
            string pasword = " ";
 
            WebClient client = new WebClient();
            client.Credentials = new NetworkCredential(login, pasword);
            client.UploadFile("ftp://v.ru/"+files, @"C:\Users\Desktop\1\2\12$20180828010551.zip");
 
            
 
 
        }
 
        private void progressBar1_Click(object sender, EventArgs e)
        {
 
        }
 
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            
        }
 
        
        
        private List<string> b = new List<string>();      
        public void button3_Click(object sender, EventArgs e)
        {
            DirectoryInfo dir2 = new DirectoryInfo(@"C:\Users\Desktop\1\2");
            //Directory.GetFiles(dir2.ToString(), "1111.txt", SearchOption.AllDirectories).ToList().ForEach(f => listBox2.Items.Add(f));
            Directory.GetFiles(dir2.ToString(), "1111.txt", SearchOption.AllDirectories).ToList().ForEach(f => b.Add(f));
 
            DirectoryInfo dir = new DirectoryInfo(@"C:\Users\Desktop\1\2");
           // Directory.GetFiles(dir.ToString(), "*.zip", SearchOption.AllDirectories).ToList().ForEach(f => listBox1.Items.Add(f));
            Directory.GetFiles(dir.ToString(), "*.zip", SearchOption.AllDirectories).ToList().ForEach(f => a.Add(f));
 
 
 
                for (int c = 0; c < a.Count; c++) // цикл обработки названия файла
            {
                
                string[] fn = Directory.GetFiles(dir.ToString(), "*.zip");
                string[] fp = fn[c].Split('$');
                int li = fp[0].LastIndexOf("\\");
                string vs = fp[0].Substring(li + 1);
 
                //listBox1.Items.Add(vs);
            }
 
               
                for (int i = 0; i < b.Count; i++) // цикл обработки файла где лежат пароли и логины от ftp
                {                   
                    string[] allines = File.ReadAllLines(b[i]);
                    for (int j = 0; j < allines.Length; j++)
                    {
                        var lineparts = allines[j].Split('\t');
                        
                    }
 
                }
                
            
                
        }
 
        private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
 
        }
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.10.2018, 13:15
Ответы с готовыми решениями:

FTP Upload
Доброго времени суток! Не знаю в какую ветку писать, проблема общего характера, попробую здесь. И так. Мне нужно реализовать что-то...

Ftp upload
Пытаюсь загрузить файл на сервер с ограничением скорости. Вот код: Stream stream = request.GetRequestStream(); ...

Библиотека BytesRoad.Net.FTP.dll для работы с FTP: как реализовать докачку файла
Добрый день. Пишу программу, реализующую скачивание с фтп(суть - фтп клиент).Использую библиотеку стороннего разработчика -...

203
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
23.10.2018, 10:56  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от V_Monomax Посмотреть сообщение
maksonech, тогда попробуйте самостоятельно написать метод который будет закачивать вам файл на фтп.
Жду вашего ответа!
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/// <summary>
        ///  класс для загрузки файлов на сервер
        /// </summary>
        public class FTPUploader
        {
            /// <summary>
            /// Создание свойства загрузки файлов на FTP сервер
            /// </summary>
            public void FttpFilesUpload (string LocalFilePath, string ServerPath)
           
                {
 
                WebClient client = new WebClient();
                client.UploadFile("ftp://"+ServerPath,LocalFilePath);
 
 
                }
примерно так понял
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
23.10.2018, 11:58
Цитата Сообщение от maksonech Посмотреть сообщение
свойства
да какое нафиг свойство,
Цитата Сообщение от maksonech Посмотреть сообщение
Создание
какое нафиг создание, когда у вас готовый метод???
Цитата Сообщение от maksonech Посмотреть сообщение
"ftp://"
а это зачем, а если понадобится идти по протоколу http или https?
Не надо ставить грабли, к верху зубьями, сами себе лоб разобьете!
Цитата Сообщение от maksonech Посмотреть сообщение
WebClient client = new WebClient();
ну во первых в таком исполнении, по окончанию загрузки по хорошему надо закрыть соединение.
Во-вторых, а почему вы не указываете настроек пароля, имени пользователя и т.п???
В-третьих, а на кой черт мы создавали класс с настройками, и в нем делали свойством веб клиент?
1
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
23.10.2018, 12:35  [ТС]
Цитата Сообщение от V_Monomax Посмотреть сообщение
В-третьих, а на кой черт мы создавали класс с настройками, и в нем делали свойством веб клиент?
Подскажите как правильно написать

C#
1
2
3
4
FTPSettings  client = new FTPSettings();
                
                    client.UploadFile(ServerPath,LocalFilePath);
                    client.KeepAlive = true;
Добавлено через 10 минут
C#
1
2
3
4
5
6
 FTPSettings  client = new FTPSettings();
                LocalFilePath =client."";
                ServerPath = client.Server;
                
                    client.UploadFile(ServerPath,LocalFilePath);
                    client.KeepAlive = true;
Пока что додумался только до этого

Добавлено через 21 минуту
C#
1
2
3
4
5
var  client = new FTPSettings();
                LocalFilePath ="";
                ServerPath = client.Server;
                var tool = new WebClient();
                tool.UploadFile(ServerPath,LocalFilePath);
Все равно не понял, как именно должно выглядеть
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
23.10.2018, 13:32
Цитата Сообщение от maksonech Посмотреть сообщение
Подскажите как правильно написать
C#
1
2
3
4
5
6
7
public void FttpFilesUpload (string LocalFilePath, string ServerPath)
{
    using(WebClient client = new FTPSettings().FTPClient)// используем using для того что-бы не думать об освобождении ресурсов, а FTPSettings().FTPClient - дает настроенный клиент.
{
     client.UploadFile(ServerPath,LocalFilePath);
}
}
Попробуйте, вроде должно работать.
Отпишитесь!
1
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
23.10.2018, 13:50  [ТС]
FTPClient не доступен из-за его уровня защиты
добавил public и вродле не ругается

Добавлено через 3 минуты
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
public  WebClient FTPClient
            {
              /// <summary>
              /// считывание свойства предающего Login & Password для проверки на подленность
              /// </summary>
                get 
                {
                    var res = new WebClient();
                    res.Credentials = new NetworkCredential(Login, Password);
                    return res;
                }
                
             }
теперь так выглядит

Добавлено через 12 минут
Цитата Сообщение от V_Monomax Посмотреть сообщение
Попробуйте, вроде должно работать.
Отпишитесь!
можете подсказать как ускорить процесс понимания(например литературу почитать или еще способы)
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
23.10.2018, 15:57
Цитата Сообщение от maksonech Посмотреть сообщение
можете подсказать как ускорить процесс понимания
единственный способ, это практика. Ну и конечно соотнесение теории и практики. Вы конечно можете прочитать Шилдта (пусть и устарел, но там много полезного для новичка, можно поискать самостоятельно литературу, но самя главная литература, это конечно MSDN - там все подробно и с примерами в части как пользоваться системными классами, а вот по структурированию кода полезно прочесть про SOLID). Ну и соответственно по чаще практиковаться!

Добавлено через 40 секунд
Хотелось бы что-бы вы выложили задокументированный код для метода FttpFilesUpload.
1
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
24.10.2018, 05:07  [ТС]
Цитата Сообщение от V_Monomax Посмотреть сообщение
Хотелось бы что-бы вы выложили задокументированный код для метода FttpFilesUpload.
Сделал
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 /// <summary>
        ///  класс для загрузки файлов на сервер
        /// </summary>
        public class FTPUploader
        {
            /// <summary>
            /// Метод загрузки файлов на FTP сервер
            /// </summary>
            public void FttpFilesUpload (string LocalFilePath, string ServerPath)
           
            {
                     ///<summary>
                     ///Инициализируем метод загрузки файлов на FTP сервер при помощи уже созданного метода FTPSettings - который отдает уже настроенный клиент
                     ///</summary>           
                    using (WebClient client = new FTPSettings().FTPClient)
                    {
                        client.UploadFile(ServerPath, LocalFilePath);
                    }
                
            }
              
        }
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
24.10.2018, 08:57
Цитата Сообщение от maksonech Посмотреть сообщение
Сделал
не полностью, у вас не доделано:
C#
1
2
3
4
5
6
            /// <summary>
            /// Метод загрузки файлов на FTP сервер
            /// </summary>
            /// <param name="LocalFilePath">описание параметра</param>
            /// <param name="ServerPath">описание параметра</param> 
            public void FttpFilesUpload (string LocalFilePath, string ServerPath)
1
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
24.10.2018, 09:43  [ТС]
Цитата Сообщение от V_Monomax Посмотреть сообщение
не полностью, у вас не доделано:
C#
1
2
3
4
5
6
            /// <summary>
            /// Метод загрузки файлов на FTP сервер
            /// </summary>
            /// <param name="LocalFilePath">описание параметра</param>
            /// <param name="ServerPath">описание параметра</param> 
            public void FttpFilesUpload (string LocalFilePath, string ServerPath)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// <summary>
        ///  класс для загрузки файлов на сервер
        /// </summary>
        public class FTPUploader
        {
            /// <summary>
            /// Метод загрузки файлов на FTP сервер
            /// </summary>
            public void FttpFilesUpload (string LocalFilePath, string ServerPath)
           
            {
                ///<summary>
                ///Метод загрузки файлов на FTP сервер при помощи уже созданного метода FTPSettings - который отдает уже настроенный клиент
                ///</summary>  
                ///<param name="LocalFilePath">параметр принимающий значение директории хранения файлов</param>
                /// <param name="ServerPath">Параметр принимающий значение директории хранния файлов на FTP сервере </param> 
 
                using (WebClient client = new FTPSettings().FTPClient)// используем using для того что-бы не думать об освобождении ресурсов, а FTPSettings().FTPClient - дает настроенный клиент.
                    {
                        client.UploadFile(ServerPath, LocalFilePath);
                    }
                
            }
              
        }
переделал
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
24.10.2018, 11:33
Цитата Сообщение от maksonech Посмотреть сообщение
///<param name="LocalFilePath">параметр принимающий значение директории хранения файлов</param> /// <param name="ServerPath">Параметр принимающий значение директории хранния файлов на FTP сервере </param>
не в том месте. Статья про оформление документации
1
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
24.10.2018, 11:38  [ТС]
Цитата Сообщение от V_Monomax Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/// <summary>
        ///  класс для загрузки файлов на сервер
        /// </summary>
        public class FTPUploader
        {
            ///<summary>
            ///Метод загрузки файлов на FTP сервер при помощи уже созданного метода FTPSettings - который отдает уже настроенный клиент
            ///</summary>  
            ///<param name="LocalFilePath">параметр принимающий значение директории хранения файлов</param>
            /// <param name="ServerPath">Параметр принимающий значение директории хранния файлов на FTP сервере </param> 
            public void FttpFilesUpload (string LocalFilePath, string ServerPath)
           
            {
                
 
                using (WebClient client = new FTPSettings().FTPClient)// используем using для того что-бы не думать об освобождении ресурсов, а FTPSettings().FTPClient - дает настроенный клиент.
                    {
                        client.UploadFile(ServerPath, LocalFilePath);
                    }
                
            }
              
        }
Извиняюсь не досмотрел

Добавлено через 1 минуту
Следующий шаг будет создание свойства выбора файлов ?
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
24.10.2018, 12:03
Цитата Сообщение от maksonech Посмотреть сообщение
Следующий шаг будет создание свойства выбора файлов ?
нет.
Теперь, мы этим методом можем загрузить на фтп один файл, а как же нам сделать метод который загружает несколько файлов, каковы ваши идеи?
1
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
24.10.2018, 12:09  [ТС]
Цитата Сообщение от V_Monomax Посмотреть сообщение
нет.
Теперь, мы этим методом можем загрузить на фтп один файл, а как же нам сделать метод который загружает несколько файлов, каковы ваши идеи?
Использовать цикл
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
24.10.2018, 12:19
Цитата Сообщение от maksonech Посмотреть сообщение
Использовать цикл
идея хорошая, но вот только где его использовать? И тем более когда?
1
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
24.10.2018, 12:22  [ТС]
Цитата Сообщение от V_Monomax Посмотреть сообщение
идея хорошая, но вот только где его использовать? И тем более когда?
При нажатии на кнопку запускается цикл
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
24.10.2018, 12:26
Цитата Сообщение от maksonech Посмотреть сообщение
При нажатии на кнопку запускается цикл
очень, крайне очень плохая идея!
Попробуйте еще раз (на этот раз представьте себе что препод, заставил сделать три приложения различных типов (скажем консоль, форма и впф) делающих все то что вам нужно, но при этом не запретил использовать dll).
1
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
24.10.2018, 12:35  [ТС]
Цитата Сообщение от V_Monomax Посмотреть сообщение
очень, крайне очень плохая идея!
Попробуйте еще раз (на этот раз представьте себе что препод, заставил сделать три приложения различных типов (скажем консоль, форма и впф) делающих все то что вам нужно, но при этом не запретил использовать dll).
Сделать отдельный метод , в котором будет использоваться FttpFilesUpload => циклично считываться LocalFilePath.
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
24.10.2018, 14:02
Цитата Сообщение от maksonech Посмотреть сообщение
Сделать отдельный метод
правильно.
Цитата Сообщение от maksonech Посмотреть сообщение
в котором будет использоваться FttpFilesUpload
так можно, но это плохо, потому как вы будете открывать и закрывать соединение с фтп, а это:
-Потеря времени
-Утяжеление кода в части написания.
Цитата Сообщение от maksonech Посмотреть сообщение
циклично считываться LocalFilePath.
Это правильный ход мысли.
Подумайте, как же тогда правильно сделать?
1
24.10.2018, 14:39

Не по теме:

V_Monomax, сколько за курс молодого бойца берешь :) ?

0
24.10.2018, 14:43

Не по теме:


Цитата Сообщение от Почтальон Посмотреть сообщение
V_Monomax, сколько за курс молодого бойца берешь :) ?
Хотелось бы за спасибо работать, но и его здесь нет :)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.10.2018, 14:43
Помогаю со студенческими работами здесь

Как сделать Upload файла через FTP
Кто-нибудь знает, как запрограммировать передачу файла через FTP

Посоветуйте хороший FTP ActiveX или библиотеку с докачкой и Upload.
Посоветуйте хороший FTP ActiveX или библиотеку с докачкой и Upload. Можно платный.

Как перевести обращение к ftp-серверу в Интернете на домашний ftp-сервер?
Сервер LAMP поднимал , но интересует такой вопрос , сделать UPLOAD . Взять сервер на хостинге , а дома поднять HOME сервер . Смысл...

Используя системный FTP клиент командной строки загрузите файл на FTP-сервер
Задание: Используя системный FTP клиент командной строки загрузите файл на FTP-сервер. Как это сделать?

Не удалось подключиться к FTP: Rebex FTP/SSL does not support SFTP/SSH protocol
Добрый день. Подскажите как решить данную проблему? Не удалось подключиться к...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Новые блоги и статьи
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации: В классе Работник добавить: накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни коэффициентПрезентеизма — снижает продуктивность. . .
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день. Для работы необходим браузер,. . .
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано. . . .
Как я стал коммунистом))) Модель сохранения здоровья сотрудников, запись блога номер 15
anaschu 23.05.2026
Внезапно хорошее здоровье сотрудников не нужно капиталистам?))
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru