Как рекурсивно загрузить папку через FTP на [закрытом] Linux

Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.

Например, ниже - класс ученика, который будет использовать его в нашем коде.

public class Student {

    private int id;

    public int getId() {
        return this.id;
    }

    public setId(int newId) {
        this.id = newId;
    }
}

Приведенный ниже код дает вам исключение с нулевым указателем.

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}

Поскольку вы используете Obj_Student, но вы забыли инициализировать его, как в правильном коде, показанном ниже:

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student = new Student();
            obj_Student.setId(12);
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}
308
задан dotancohen 24 August 2016 в 23:47
поделиться

8 ответов

Вы могли полагаться на wget, который обычно обрабатывает ftp, добираются правильно (по крайней мере, в моем собственном опыте). Например:

wget -r ftp://user:pass@server.com/

можно также использовать -m, который подходит для зеркального отражения. Это в настоящее время эквивалентно -r -N -l inf.

, Если у Вас есть некоторые специальные символы в учетных деталях, можно определить --user и --password аргументы, чтобы заставить его работать. Пример с пользовательским входом в систему с определенными символами:

wget -r --user="user@login" --password="Pa$wo|^D" ftp://server.com/

РЕДАКТИРОВАНИЕ , Как указано @asmaier, предостерегитесь это, даже если -r для рекурсии, это имеет макс. уровень по умолчанию 5:

       -r
       --recursive
           Turn on recursive retrieving.

       -l depth
       --level=depth
           Specify recursion maximum depth level depth.  The default maximum depth is 5.

, Если Вы не хотите пропускать subdirs, лучше используйте опцию зеркального отражения, -m:

       -m
       --mirror
           Turn on options suitable for mirroring.  This option turns on recursion and time-stamping, sets infinite
           recursion depth and keeps FTP directory listings.  It is currently equivalent to -r -N -l inf
           --no-remove-listing.
606
ответ дан fduff 23 November 2019 в 01:14
поделиться
ncftp -u <user> -p <pass> <server>
ncftp> mget directory
25
ответ дан Vinko Vrsalovic 23 November 2019 в 01:14
поделиться

Если можно использовать scp вместо ftp, -r, опция сделает это для Вас. Я проверил бы, чтобы видеть, можно ли использовать более современный механизм передачи файлов, чем FTP.

17
ответ дан Greg Hewgill 23 November 2019 в 01:14
поделиться

Используйте WGet вместо этого. Это поддерживает протоколы FTP и HTTP.

wget -r ftp://mydomain.com/mystuff

Удачи!

ссылка: http://linux.about.com/od/commands/l/blcmdl1_wget.htm

9
ответ дан Jason Stevenson 23 November 2019 в 01:14
поделиться

Существует 'ncftp', который доступен для установки в Linux. Это работает над протоколом FTP и может использоваться для загрузки файлов и папок рекурсивно. работы над Linux. Использовался и хорошо работает для рекурсивной папки/передачи файлов.

Проверка эта ссылка... http://www.ncftp.com/

7
ответ дан Cypher 23 November 2019 в 01:14
поделиться

Если Вы можете, я убедительно предполагать Вас tar и bzip (или gzip, безотносительно плаваний Ваша лодка) каталог на удаленном machine— для каталога какого-либо значительного размера, сбережения пропускной способности будут, вероятно, стоить времени для архивированного/разархивированного.

3
ответ дан Hank Gay 23 November 2019 в 01:14
поделиться

Если Вы хотите придерживаться FTP командной строки, необходимо попробовать NcFTP. Тогда можно использовать, заставляют-R рекурсивно получать папку. Вы также получите завершение.

3
ответ дан Jazz 23 November 2019 в 01:14
поделиться

wget -r ftp://url

Отлично работает на Redhat и Ubuntu

3
ответ дан 23 November 2019 в 01:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: