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

Upload на FTP

18.10.2018, 13:15. Показов 8549. Ответов 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
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
18.10.2018, 13:33
советую ознакомится
Для начала ваш код надо разложить на более удобный (образовать пространство имен, в нем образовать класс для настроек, и хотя бы класс загрузки на фтп), затем используя логику созданных классов загружать на фтп.

Не по теме:

Цитата Сообщение от maksonech Посмотреть сообщение
C#
1
2
3
string[] fn = Directory.GetFiles(dir.ToString(), "*.zip"); 
string[] fp = fn[c].Split('$'); int li = fp[0].LastIndexOf("\\"); 
string vs = fp[0].Substring(li + 1);
Знакомый код однако



Добавлено через 1 минуту
у вас еще будет отдельный класс для файлов.
1
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
19.10.2018, 06:04  [ТС]
Цитата Сообщение от V_Monomax Посмотреть сообщение
советую ознакомится
Для начала ваш код надо разложить на более удобный (образовать пространство имен, в нем образовать класс для настроек, и хотя бы класс загрузки на фтп), затем используя логику созданных классов загружать на фтп.

Не по теме:


Знакомый код однако



Добавлено через 1 минуту
у вас еще будет отдельный класс для файлов.
как-то так ?

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
public class logpasftp
        {
 
            private List<string> b = new List<string>();
 
           
 
            public void logpasftpred()
            {
                DirectoryInfo dir2 = new DirectoryInfo(@"C:\Users\chupikovmp\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));
                 string login;
                 string pasword;
                 string[] allines;
                 string[] lineparts;
 
                for (int i = 0; i < b.Count; i++) // цикл обработки файла где лежат пароли и логины от ftp
                {
 
                    allines = File.ReadAllLines(b[i]);
 
                    for (int j = 0; j < allines.Length; j++)
                    {
 
                        lineparts = allines[j].Split('\t');
 
                        login = lineparts[1];
                        pasword = lineparts[2];
                    }
 
                    
                }
 
 
            }
        }
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
19.10.2018, 09:11
Цитата Сообщение от maksonech Посмотреть сообщение
как-то так ?
нет.
вам нужно создать пространство имен, сделали?
1
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
19.10.2018, 09:14  [ТС]
Цитата Сообщение от V_Monomax Посмотреть сообщение
нет.
вам нужно создать пространство имен, сделали?
C#
1
2
3
4
5
6
7
8
struct ftpsettings
        {
            public string Login{ get; set; }
            public string Password { get; set; }
            public string Server { get; set; }
            public string Filename { get; set; }
 
        }
так ?
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
19.10.2018, 09:17
У вас слишком много дублирующего кода, слишком все скомкано. Если хотите поработаем, над этим, и тогда все в конце соберется и будет работать, так как надо, и код для исправления будет закрыт (потому как правка не нужна будет, зато при необходимости будет открыт для расширения.

Добавлено через 3 минуты
Цитата Сообщение от maksonech Посмотреть сообщение
так ?
нет
Вот так это делается!
1
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
19.10.2018, 09:30  [ТС]
Цитата Сообщение от V_Monomax Посмотреть сообщение
Если хотите поработаем, над этим, и тогда все в конце соберется и будет работать, так как надо, и код для исправления будет закрыт (потому как правка не нужна будет, зато при необходимости будет открыт для расширения.

если возможно, то был бы безмерно рад.
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
19.10.2018, 10:03
Цитата Сообщение от maksonech Посмотреть сообщение
если возможно, то был бы безмерно рад.
вы уже создали папку (пространство имен)?
1
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
19.10.2018, 10:18  [ТС]
Цитата Сообщение от V_Monomax Посмотреть сообщение
вы уже создали папку (пространство имен)?
создал
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
19.10.2018, 10:53
Цитата Сообщение от maksonech Посмотреть сообщение
создал
Хорошо, сделайте в папке (в пространстве имен - namespace) класс FTPSettings!

Добавлено через 44 секунды
maksonech, вы с каким фреймворком работаете?
1
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
19.10.2018, 10:53  [ТС]
готово

Добавлено через 41 секунду
Цитата Сообщение от V_Monomax Посмотреть сообщение
Хорошо, сделайте в папке (в пространстве имен - namespace) класс FTPSettings!

Добавлено через 44 секунды
maksonech, вы с каким фреймворком работаете?
4.5.2
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
19.10.2018, 10:59
Цитата Сообщение от maksonech Посмотреть сообщение
4.5.2
Хорошо
Итак, у нас есть имя пользователя и пароль, а вы вообще знаете что такое свойство?
Если знаете, напишите прям в этой ветке ответом, свойства имени пользователя и свойство пароля.
1
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
19.10.2018, 11:12  [ТС]
Добавлено через 43 секунды
Цитата Сообщение от V_Monomax Посмотреть сообщение
Хорошо
Итак, у нас есть имя пользователя и пароль, а вы вообще знаете что такое свойство?
Если знаете, напишите прям в этой ветке ответом, свойства имени пользователя и свойство пароля.
C#
1
2
3
class ftpsettings{ public string login;
public string Place {get
{reurn login}set{login="asdfa" }}}
как-то так понимаю
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
19.10.2018, 11:20
Цитата Сообщение от maksonech Посмотреть сообщение
Как-то так понимаю
направление верное, реализация плохая.
Цитата Сообщение от maksonech Посмотреть сообщение
class ftpsettings
Классы лучше наименовать как имена (первая буква большая, сокращения с большой буквы, разделения слов через большую букву, например класс работы с данными наименовывается как DateWorker, в нашем случае есть сокращение фтп и настройки: FTPSettings
Цитата Сообщение от maksonech Посмотреть сообщение
public string login;
ну а если мы вынесем вообще его в некое хранилище (БД, XML и т.д.), у него получится сохранение и получение, поэтому правильнее
C#
1
2
3
4
5
public string FTPLogin
{
get;//получение
set;//сохранение в переменной, при необходимости сохранение во внешнем хранилище
}="login";//присвоение значения по умолчанию
в итоге у вас должно получиться вот так:
C#
1
2
3
4
5
6
7
8
9
10
11
namespace FTPWorker
{
   class FTPSettings
   {
        public string FTPLogin
         {
              get;//получение
              set;//сохранение в переменной, при необходимости сохранение во внешнем хранилище
          }="login";//присвоение значения по умолчанию
    }
}
попробуйте в том же стиле сделать пароль! Выкладывайте сюда в ветку!
1
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
19.10.2018, 11:58  [ТС]
C#
1
2
3
4
5
6
7
8
9
namespace FTPWorker
{
class FTPSettings{
publick sring FTPPassword{get
{
//не понял как получить из файла
}
set{ }
}
не понял, как мне из файла получить значение
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
19.10.2018, 12:16
Цитата Сообщение от maksonech Посмотреть сообщение
не понял, как мне из файла получить значение
на это пока не обращаем внимание, но понимаем что такая возможность есть.
ну и без реализации за get и set ставится точка с запятой.
По сути код
C#
1
public string FTPPassword{get;set;}
аналогичен коду
C#
1
public string FTPPassword = "";
так что поправьте то что сделано у вас! и выложите заново, кроме того аналогично показаному на логине, инициализируйте свойство со значением по умолчанию!
1
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
19.10.2018, 12:28  [ТС]
C#
1
2
3
4
5
6
7
8
public class FTPSettings
        {
            public string Login{ get; set; }
            public string Password { get; set; }
            public string Server;
            public string Filename { get; set; }
 
        }
примерно так ?
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
19.10.2018, 12:33
Цитата Сообщение от maksonech Посмотреть сообщение
примерно так ?
да, но почему вы оставили
Цитата Сообщение от maksonech Посмотреть сообщение
public string Server;
он что чем-то отличается?
Ну и наконец не сделали инициализацию значением по умолчанию (здесь конечно лучше не писать пользователя и пароль и пр. Но в коде правильно указать так:
C#
1
2
3
4
5
6
7
8
public class FTPSettings
        {
            public string Login{ get; set; } ="login";
            public string Password { get; set; }="password";
            public string Server{ get; set; }=@"http://serverName.ru/";
            public string Filename { get; set; }// а это настройка не фтп сервера, здесь она не нужна!
 
        }
1
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
19.10.2018, 12:39  [ТС]
Цитата Сообщение от V_Monomax Посмотреть сообщение
да, но почему вы оставили

он что чем-то отличается?
Ну и наконец не сделали инициализацию значением по умолчанию (здесь конечно лучше не писать пользователя и пароль и пр. Но в коде правильно указать так:
C#
1
2
3
4
5
6
7
8
public class FTPSettings
        {
            public string Login{ get; set; } ="login";
            public string Password { get; set; }="password";
            public string Server{ get; set; }=@"http://serverName.ru/";
            public string Filename { get; set; }// а это настройка не фтп сервера, здесь она не нужна!
 
        }
а если, значения логина и пароля будут изменяться, то зачем прописывать по умолчанию ?
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
19.10.2018, 13:09
Цитата Сообщение от maksonech Посмотреть сообщение
а если, значения логина и пароля будут изменяться, то зачем прописывать по умолчанию ?
вот когда менять будем тогда и поменяем, а пока нам с чем-то работать надо?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.10.2018, 13:09
Помогаю со студенческими работами здесь

Как сделать 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
Добрый день. Подскажите как решить данную проблему? Не удалось подключиться к...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru