Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.
Внимание! Некоторое время письма не доходят до аккаунтов MAIL RU GROUP, не доходят на все почтовые ящики mail.ru, inbox.ru, bk.ru. Пишите им жалобы, чтобы быстрее восстановили получение писем, регистрируйтесь через яндекс почту и gmail, туда письма с активизацией доходят.

Вернуться   Форум программистов > Delphi > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 29.08.2018, 12:15   #1
lypyotr
Пользователь
 
Регистрация: 19.07.2011
Сообщений: 33
Репутация: 10
По умолчанию Проблема с кириллицей при листинге файлов на FTP

Здравствуйте. Возникла проблема при попытке получить список файлов на FTP-сервере с названиями на кириллице. При попытке перейти в каталог "Тест1" появляется ошибка "550 Can't change directory to /FTP/????1: No such file or directory".

Код рекурсивного листинга:
Код:

procedure ListDir(Remote: string);
var
LS: TStringList;
i,k: integer;
begin
Form1.Stop:=False;
LS:= TStringList.Create;
try
Form1.idFTP1.ChangeDir(Remote);
Form1.idFTP1.List(LS);
if LS.Count > 0 then begin
k:= LS.Count;
LS.Clear;
for i:= 0 to k-1 do begin
Application.ProcessMessages;
if form1.stop then break;
if (Form1.idFTP1.DirectoryListing.Items[i].FileName <> '.') and (Form1.idFTP1.DirectoryListing.Items[i].FileName <> '..') then begin
if Form1.idFTP1.DirectoryListing.Items[i].ItemType = ditDirectory then begin
LS.Add(Form1.idFTP1.DirectoryListing.Items[i].FileName);
end else begin
Form1.ListBox1.Items.Add('File: '+Remote+'/'+Form1.idFTP1.DirectoryListing.Items[i].FileName);
end;
end;
Form1.timer:=0;
end;

for i := 0 to LS.Count - 1 do begin
Application.ProcessMessages;
ListDir(Remote+'/'+LS[i]);
Form1.idFTP1.ChangeDir(Remote);
end;
end;
finally
LS.Free;
end;
end;

Вызов процедуры:
Код:

ListDir(path1);

"path1" читается из ini-файла

Лог:
Код:

Resolving hostname files.000webhost.com.
Connecting to 145.14.144.87.
Connected.
<<- 220 ProFTPD Server (000webhost.com) [::ffff:145.14.144.87]
->> HOST files.000webhost.com
<<- 504 files.000webhost.com: Unknown hostname provided
->> USER username
<<- 331 User sweetbread OK. Password required
->> PASS password
<<- 230-Your bandwidth usage is restricted
<<- 230 OK. Current restricted directory is /
->> FEAT
<<- 211-Features:
<<-  AUTH TLS
<<-  CCC
<<-  CLNT
<<-  EPRT
<<-  EPSV
<<-  HOST
<<-  MDTM
<<-  MFF modify;UNIX.group;UNIX.mode;
<<-  MFMT
<<-  MLST modify*;perm*;size*;type*;unique*;UNIX.group*;UNIX.groupname*;UNIX.mode*;UNIX.owner*;UNIX.ownername*;
<<-  PBSZ
<<-  PROT
<<-  RANG STREAM
<<-  REST STREAM
<<-  SIZE
<<-  SSCN
<<-  TVFS
<<- 211 End
->> CLNT Indy 10.6.2.5366
<<- 500 Unknown command
->> TYPE I
<<- 200 TYPE is now 8-bit binary
->> SYST
<<- 215 UNIX Type: L8
->> TYPE I
<<- 200 TYPE is now 8-bit binary
Connection established
->> CWD /FTP
<<- 250 OK. Current directory is /FTP
Starting FTP transfer
->> PASV
<<- 227 Entering Passive Mode (145,14,144,87,186,1).
->> MLSD
<<- 150 Connecting to port 44096
<<- 226-Options: -a -l 
<<- 226 3 matches total
Transfer complete
->> CWD /FTP/????1
<<- 550 Can't change directory to /FTP/????1: No such file or directory

Screenshot_4.png
lypyotr вне форума   Ответить с цитированием
Старый 29.08.2018, 18:03   #2
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 210
Репутация: 62
По умолчанию

а так?
// Application.ProcessMessages;
XerSon вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод в ListView каталогов по заданному критерию (TDirectory, TPath) проблема с кириллицей Seikeron Общие вопросы Delphi 4 03.04.2018 02:27
В SQL запросе при использовании LIKE не ищет по маске с кириллицей (русскими буквами) nelo_001 Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 14 21.12.2015 00:52
FTP. лишние байты при отправке файлов rachina Работа с сетью в Delphi 0 01.12.2015 03:37
Проблема с пересылкой файлов по FTP Diana-64 Свободное общение 7 07.05.2013 09:06
Всё та же проблема с кириллицей в БД Prok186 БД в Delphi 0 01.11.2011 09:36


02:13.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru