Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.85/117: Рейтинг темы: голосов - 117, средняя оценка - 4.85
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533

Скачивание папки с FTP - сервера по актуальной дате

04.10.2018, 09:39. Показов 31525. Ответов 897
Метки ftp, tls (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Возможно ли реализовать скачку с фтп папки в которой находятся файлы, папок много, а скачать файлы нужно из той папки, которая названа сегодняшней датой
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.10.2018, 09:39
Ответы с готовыми решениями:

Скачивание папки с FTP - сервера по актуальной дате (2)
Продолжение темы https://www.cyberforum.ru/csharp-net/thread2329455.html var mStr = "20181206_20-15-30.txt"; var dtAr =...

Скачивание папок с FTP-сервера
всем приветик ! подскажите плиииз ! есть батник он подключается к фтп и копирует оттуда файлы все ! open 89.253.247.10 metko ...

Скачивание файла с FTP-сервера
Здравствуйте. Подскажите как загрузить файл с сервера по ftp?

897
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
04.10.2018, 15:24
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Damenikx Посмотреть сообщение
Ошибка:
пардон из-за жабаскрипта стал путаться
C#
1
2
3
4
5
6
7
8
9
10
foreach(var dt in ListDirectoryDetails)
{
   var Sarr =dt.Split(' ');//заменить " на '
   if(Sarr.Lenght>11&&Sarr[11].Contains("."))
   {
         Console.WriteLine("Файл: {0}",Sarr[11]);
   }
   
}
Console.Read();
Добавлено через 1 минуту
Цитата Сообщение от V_Monomax Посмотреть сообщение
var Sarr =dt.Split(' ');//заменить " на '
здесь между одинарными кавычками обязателен пробел.
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
04.10.2018, 15:25  [ТС]
Не-а)) пустая консоль, но ошибки не возникает)
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
04.10.2018, 15:43
Damenikx, не хоитте работать, ваше дело, но если вы не датите актуальную строку (учтите, количество пробелов тоже важно), то я больше помогать не буду.
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
04.10.2018, 15:51  [ТС]
Прошу прощения, если я вас чем-то обидел, но я сделал всё, как вы написали, консоль выводится пустой. Там просто пусто, могу сфотографировать на мобильный телефон и прислать, что показывает, но там просто чёрный экран. Я очень ценю вашу помощь, честно, но я не понимаю, что я должен вам прислать.

Сама программа перестала выдавать ошибку, при запуске появляется пустая консоль, там нет ни символа.

Добавлено через 59 секунд
Предварительно я поменял двойные кавычки на одинарные и поставил пробел, всё, как вы и сказали сделать. Перепроверил несколько раз.

Добавлено через 1 минуту
C#
1
2
3
4
5
6
7
8
9
10
foreach(var dt in ListDirectoryDetails)
{
   var Sarr =dt.Split(' ');//здесь я поставил пробел, на 11 всё поменял 
   if(Sarr.Lenght>11&&Sarr[11].Contains("."))
   {
         Console.WriteLine("Файл: {0}",Sarr[11]);
   }
   
}
Console.Read();
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
04.10.2018, 15:59  [ТС]
Вот фотография.
Миниатюры
Скачивание папки с FTP - сервера по актуальной дате  
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
04.10.2018, 16:08
откатите пока до
C#
1
2
3
4
5
6
7
int j=1;
foreach(var dt in ListDirectoryDetails)
{
   Console.WriteLine("{1}/n{0}",dt,j);
   j++;
}
Console.Read();
и сюда все что выведет консоль перепишете, со всеми пробелами (в консоли правой кнопкой, выбрать, копировать).

Добавлено через 5 минут
контрольно не плохо бы получить еще что выводиться при таком коде:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
int j=1;
foreach(var dt in ListDirectoryDetails)
{
   var Sarr =dt.Split(' ');
   Console.WriteLine("попытка {0}",j);
   foreach(var s in Sarr)
    {
      Console.WriteLine("строка {0}",s);
    }
   j++;
   
}
Console.Read();
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
04.10.2018, 16:11  [ТС]
1/ndrwr-xr-x 1 ftp ftp 0 oct 04 09:12 20181002

Добавлено через 54 секунды
Форум не хочет отсылать несколько пробелов друг за другом, между ftp и 0 14 пробелов (я посчитал).

Добавлено через 43 секунды
Сейчас вторую часть попробую.
0
 Аватар для Young Vu
133 / 103 / 43
Регистрация: 01.03.2018
Сообщений: 291
04.10.2018, 16:15
Damenikx, покажи весь код, непонятно что там у тебя
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
04.10.2018, 16:20  [ТС]
попытка 1
строка drwxr-xr-x
строка 1
строка ftp
строка ftp
строка
строка
строка
строка
строка
строка
строка
строка
строка
строка
строка
строка
строка
строка 0
строка Oct
строка 04
строка 09:12
строка 20181002

Добавлено через 4 минуты
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
List<string> ListDirectoryDetails = new List<string>();
            var ftp = (FtpWebRequest)FtpWebRequest.Create("ftp://111.111.111.111:2222");
            ftp.Credentials = new NetworkCredential("user", "password");
            ftp.KeepAlive=false;
            ftp.UseBinary=true;
            ftp.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
            var response = (FtpWebResponse)ftp.GetResponse();
            var responseStream = response.GetResponseStream();
            var reader = new StreamReader(responseStream);
            
            while (!reader.EndOfStream)
            {
                ListDirectoryDetails.Add(reader.ReadLine());
            }
            responseStream.Close();
            response.Close();
            reader.Close();
 
            int j = 1;
            foreach(var dt in ListDirectoryDetails)
            {
                var Sarr = dt.Split(' ');
                Console.WriteLine("попытка {0}", j);
                foreach (var s in Sarr)
                {
                    Console.WriteLine("строка {0}", s);
                }
                j++;
            }
            Console.Read();
       
        }
    }
}
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
04.10.2018, 16:28
Цитата Сообщение от Damenikx Посмотреть сообщение
1/ndrwr-xr-x 1 ftp ftp 0 oct 04 09:12 20181002
выводится только одна строка?
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
04.10.2018, 16:31  [ТС]
Да, только одна строка.

Добавлено через 2 минуты
Цитата Сообщение от V_Monomax Посмотреть сообщение
выводится только одна строка?
Код я проверял, думал где-то ошибся, нет вроде всё, как показывали.
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
04.10.2018, 16:36
тьфу вот ведь не внимательный вы Damenikx, ну как можно спутать адресс папки с адрессом самого ftp?
Цитата Сообщение от Damenikx Посмотреть сообщение
var ftp = (FtpWebRequest)FtpWebRequest.Create("ftp ://111.111.111.111:2222");
вот где проблема, а нужно
C#
1
var ftp = (FtpWebRequest)FtpWebRequest.Create("ftp://111.111.111.111:2222/20181002");
Добавлено через 50 секунд
пробуем, и скидываем оба вывода.
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
04.10.2018, 16:40  [ТС]
Я дописал папку и дописал вот это:
C#
1
2
3
4
5
6
7
8
9
10
foreach(var dt in ListDirectoryDetails)
{
   var Sarr =dt.Split(' ');
   if(Sarr.Lenght>11&&Sarr[11].Contains("."))
   {
         Console.WriteLine("Файл: {0}",Sarr[11]);
   }
   
}
Console.Read();
Добавлено через 23 секунды
Консоль пустая.
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
04.10.2018, 16:47
Цитата Сообщение от Damenikx Посмотреть сообщение
Я дописал папку и дописал вот это:
рано, пока дайте оба вывода!
так как скорее всего нужно не 11 а 22.
жду от вас вывода
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int j=1;
foreach(var dt in ListDirectoryDetails)
{
   Console.WriteLine("{1}/n{0}",dt,j);
   j++;
}
 
j=1;
 
foreach(var dt in ListDirectoryDetails)
{
   var Sarr =dt.Split(' ');
   Console.WriteLine("попытка {0}",j);
   int n =0;
   foreach(var s in Sarr)
    {
      Console.WriteLine("строка {1}=={0}",s,n);
      n++;
    }
   j++;
   
}
Console.Read();
Добавлено через 3 минуты

Не по теме:


и не торопитесь, рабочий день заканчивается в 17:30 по Мск, если не успеете скорее всего отпишусь только завтра.

1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
04.10.2018, 16:56  [ТС]
1/n-r--r--r-- 1 ftp ftp 253952 Oct 03 14:19 1111.xls
2/n-r--r--r-- 1 ftp ftp 909824 Oct 03 14:20 2222.xls
3/n-r--r--r-- 1 ftp ftp 1194496 Oct 03 14:20 3333.xls
4/n-r--r--r-- 1 ftp ftp 999936 Oct 03 14:21 4444.xls
попытка 1
строка 0==-r--r--r--
строка 1==1
строка 2==ftp
строка 3==ftp
строка 4==
строка 5==
строка 6==
строка 7==
строка 8==
строка 9==
строка 10==
строка 11==
строка 12==253952
строка 13==Oct
строка 14==03
строка 15==14:19
строка 16==1111.xls
попытка 2
строка 0==-r--r--r--
строка 1==1
строка 2==ftp
строка 3==ftp
строка 4==
строка 5==
строка 6==
строка 7==
строка 8==
строка 9==
строка 10==
строка 11==
строка 12==909824
строка 13==Oct
строка 14==03
строка 15==14:20
строка 16==2222.xls
попытка 3
строка 0==-r--r--r--
строка 1==1
строка 2==ftp
строка 3==ftp
строка 4==
строка 5==
строка 6==
строка 7==
строка 8==
строка 9==
строка 10==
строка 11==1194496
строка 12==Oct
строка 13==03
строка 14==14:20
строка 15==3333.xls
попытка 4
строка 0==-r--r--r--
строка 1==1
строка 2==ftp
строка 3==ftp
строка 4==
строка 5==
строка 6==
строка 7==
строка 8==
строка 9==
строка 10==
строка 11==
строка 12==999936
строка 13==Oct
строка 14==03
строка 15==14:21
строка 16==4444.xls

Добавлено через 19 секунд
РАБОТАЕТ! УРА!

Добавлено через 4 минуты
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
foreach(var dt in ListDirectoryDetails)
{
   var Sarr =dt.Split(' ');
   Console.WriteLine("попытка {0}",j);
   int n =0;
   foreach(var s in Sarr)
    {
      Console.WriteLine("строка {1}=={0}",s,n);
      n++;
    }
   j++;
   
}
Console.Read();
Убрал эту часть.
получилось вообще классно:
1/n-r--r--r-- 1 ftp ftp 253952 Oct 03 14:19 1111.xls
2/n-r--r--r-- 1 ftp ftp 909824 Oct 03 14:20 2222.xls
3/n-r--r--r-- 1 ftp ftp 1194496 Oct 03 14:20 3333.xls
4/n-r--r--r-- 1 ftp ftp 999936 Oct 03 14:21 4444.xls
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
04.10.2018, 17:15
Цитата Сообщение от Damenikx Посмотреть сообщение
РАБОТАЕТ! УРА!
т.е. нам нужен 16 элемент в массиве. Теперь переделываем код следующим образом:
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
            string ftpadress ="ftp://111.111.111.111:2222/";
            string folderAdress =DateTime.Now.ToString("YYYYMMdd");//для тестирования заменять на "20181002"
            List<string> ListDirectoryDetails = new List<string>();
            var ftp = (FtpWebRequest)FtpWebRequest.Create(ftpadress+folderAdress);
            ftp.Credentials = new NetworkCredential("user", "password");
            ftp.KeepAlive=false;
            ftp.UseBinary=true;
            ftp.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
            var response = (FtpWebResponse)ftp.GetResponse();
            var responseStream = response.GetResponseStream();
            var reader = new StreamReader(responseStream);
            
            while (!reader.EndOfStream)
            {
                ListDirectoryDetails.Add(reader.ReadLine());
            }
            responseStream.Close();
            response.Close();
            reader.Close();
 
            var FileNames = new List<string>();
            foreach(var dt in ListDirectoryDetails)
            {
                var Sarr = dt.Split(' ');
                if(Sarr.Lenght>16&&Sarr[16].Contains("."))
                 {
                     FileNames.Add(Sarr[16]);
                  }
            }
           
       
        }
    }
}
собственно все готово что-бы работала первая часть (она должна идти после второй).
Правда это все не красиво, и ужасно, для нормальной работы крайне плохо. Для того что-бы сделать хорошо, выкладывайте обе части кода здесь, подумаем как их переделать. Надеюсь вы догадались уже для работы ипользовать отдельный класс, или бьете в майн все?

Добавлено через 2 минуты
Цитата Сообщение от Damenikx Посмотреть сообщение
Убрал эту часть.
получилось вообще классно:
хреново
смотрите
Цитата Сообщение от Damenikx Посмотреть сообщение
попытка 2
строка 0==-r--r--r--
строка 1==1
строка 2==ftp
строка 3==ftp
строка 4==
строка 5==
строка 6==
строка 7==
строка 8==
строка 9==
строка 10==
строка 11==
строка 12==909824
строка 13==Oct
строка 14==03
строка 15==14:20
строка 16==2222.xls
попытка 3
строка 0==-r--r--r--
строка 1==1
строка 2==ftp
строка 3==ftp
строка 4==
строка 5==
строка 6==
строка 7==
строка 8==
строка 9==
строка 10==
строка 11==1194496
строка 12==Oct
строка 13==03
строка 14==14:20
строка 15==3333.xls
и что называется, найдите разницу, что мне настроение портит.

Добавлено через 2 минуты
в третьей попытке отсутствует строка 16, зато во всех остальных она есть, и тут надо немного иначе. Ладно если что завтра маякните, и я переделаю, если кто не посоветует чего годного.

Добавлено через 4 минуты
впрочем задам вам задачку, что называется на засыпку:
Вам нужно рассплитить строку на два массива:
строка 0==-r--r--r--
строка 1==1
строка 2==ftp
строка 3==ftp

и

строка 12==909824
строка 13==Oct
строка 14==03
строка 15==14:20
строка 16==2222.xls

Поробуйте подумать, используя существующий код, как это сделать?
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
04.10.2018, 17:16  [ТС]
Теперь Я понимаю, почему 16й элемент
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
04.10.2018, 17:17
Цитата Сообщение от V_Monomax Посмотреть сообщение
строку на два массива:
читать как строку на два элемента (подстроки)
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
04.10.2018, 17:17  [ТС]
Я попробую обязательно. Завтра отпишу. Спасибо огромное за вашу помощь!
0
04.10.2018, 17:21

Не по теме:


Цитата Сообщение от Damenikx Посмотреть сообщение
Теперь Я понимаю, почему 16й элемент
так и вспомнился фильм "пятый элемент" :):D

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.10.2018, 17:21

Скачивание файла с ftp сервера
Привет! Решил попробовать написать систему обновления для своей программы. Есть вот такая идея: создать сайт и вручную залить по ftp на...

Скачивание каталога с FTP сервера
Доброго времени суток. Работаю с FTP сервером в C# при помощи библиотеки BytesRoad.Net.Ftp. Появилась необходимость скачивать ВЕСЬ каталог...

Скачивание файлов с FTP сервера на локальный ЖД
Здравствуйте. Возникла проблема, возможно глупая и её решение должно быть элементарным, но всё же :) Добавлено через 9 минут ...

Скачивание файла с FTP-сервера с использованием Wget
Доброго времени суток! Задача - необходим батник чтобы он: 1. Скачивал необходимый файл с ftp(хранилище можем подобрать иное) 2....

Скачивание папки с удаленного сервера
WebClient wb = new WebClient(); wb.DownloadFile(&quot;https://cloud.mail.ru/public/46F4/Eqhw66Kb2&quot;, @&quot;C:\test\sandbox&quot;); Вот такой код...


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

Или воспользуйтесь поиском по форуму:
40
Закрытая тема Создать тему
Новые блоги и статьи
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
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
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru