Сначала я хочу получить список файлов, хранящихся в каталоге FTP, а затем получить имя последнего созданного файла, используя отметку времени. И я получаю окно с предупреждением: Activity is not responding
. После проверки записи logcat я замечаю, что код никогда не достигает строки:
Log.e("FTP", "number of filenames: " + count);
Но я добираюсь до Log.e("FTP", "Connexion successful ");
Так что подключение к серверу кажется нормальным.
Кажется, что-то там не так. Может кто-нибудь помочь мне разобраться с этим. Или покажите мне простой способ получить последний созданный файл от директора FTP-сервера?
FTPClient ftpClient = new FTPClient();
try
{
ftpClient.connect(InetAddress.getByName(Fonctions.address), Integer.parseInt(Fonctions.port));
if (ftpClient.login(Fonctions.login, Fonctions.pass))
{
Log.e("FTP", "Connexion successful ");
String workDir = ftpClient.printWorkingDirectory();
//Log.e("FTP", "workdir:" + workDir);
int count = ftpClient.listNames().length;
Log.e("FTP", "number of filenames: " + count);
FTPFile [] dossier = new FTPFile[count];
FTPFile back = new FTPFile();
dossier = ftpClient.listDirectories("Sarelo_FTP");
back = dossier[0];
Log.e("FTP", "Avant boucle " + back);
int buf = 0;
for (int i=0;i<(dossier.length) - 1;i++)
{
for (int j=1;j<dossier.length;j++)
{
buf = back.getTimestamp().compareTo(dossier[j].getTimestamp());
if (buf == -1)
back = dossier[j];
}
}
Log.e("FTP", "fichier final le plus récent: " + back.getName());
}
else{
Log.e("Restore FTP", "Error while connecting to FTP server");
}
}
catch(IOException e)
{
String title = "Error connecting to FTP server";
String msg = "Please check your parameters and connexion info: login, password,port number";
f.alert(c, title, msg).show();
Log.e("Restore FTP", "Error while connecting to FTP server", e);
}
P.S: Я не могу получить список файлов в каталоге, поэтому я не знаю, работает ли мой код для извлечения последнего созданного файла. Любая помощь в этом также будет оценена.
[Редактировать] Это моя AsyncTask для получения списка файлов в каталоге. Но это все еще не работает. Я больше не получаю приложение, не отвечающее, но, похоже, оно больше ничего не делает. Исполнение застревает в той же точке (не может достичь Log.e("FTP", "number of filenames: " + count);
)
class getFilesFromFtp extends AsyncTask
{
@Override
protected String doInBackground(Object... params)
{
int count = 0;
try
{
Log.e("FTP", "avant names: " + count);
count = ftpClient.listNames().length;
Log.e("FTP", "names: " + count);
handler.sendMessage(handler.obtainMessage());
}
catch (IOException e) {
Log.e("FTP", "Error getting number of files ", e);
}
return null;
}
}
Спасибо за помощь.