Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.08.2018, 11:15   #1
lypyotr
Пользователь
 
Регистрация: 19.07.2011
Сообщений: 33
По умолчанию Проблема с кириллицей при листинге файлов на 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, 17:03   #2
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
По умолчанию

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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