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

Upload на FTP

18.10.2018, 13:15. Показов 9078. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru