Нет способа сделать это надежно во всех службах FTP.
Протокол FTP не обеспечивает способ получения размеров файлов, поэтому вам нужно будет обратиться к списку каталогов и отменить выбор (специфичный для сервера) текста, который вы получите.Более того, нет никакой гарантии, что список каталогов будет включен, или что у вас будет разрешение на создание списка каталогов.
Сказав это, некоторые библиотеки FTP могут быть настроены для получения размера файла.Например, с библиотекой Apache FTPClient вы можете (попытаться) использовать метод listFiles(String)
и посмотреть получившийся объект FTPFile
.
EDIT
@ Кевин Брок упоминает команду FTP SIZE как возможную.
- Эта команда была впервые определена в RFC 3659 в 2007 году. Многие развернутые FTP-серверпрограммное обеспечение намного старше этого.
- SIZE - необязательная команда;т. е. даже серверы, соответствующие RFC 3659, не обязаны его поддерживать.
- Даже если SIZE поддерживается сервером, текущие API-интерфейсы Apache FTPClient не включают в себя метод получения размера файла (кроме как через *).1024 *).Конечно, это может измениться в будущем.
- Класс ftp4j
FTPClient
, очевидно, реализует SIZE и делает его доступным с помощью метода fileSize(...)
.