/** * 下载文件列表 * * @param remoteDir * @return * @throws FtpException */ public String[] getFileNmList(String remoteDir) throws FtpException { String[] fileList; try { fileList = ftp.listNames(remoteDir); } catch (Exception ex) { close(); // ex.printStackTrace(); throw new FtpException("get remote file list fail"); } return fileList; }
@Override protected Integer doInBackground(Long... params) { // Log.w("LOGGER", "Starting...doInBackground"); try { actionBar.setProgressBarVisibility(ProgressBar.VISIBLE); con = new FTPClient(); try { String version_actualizar = ""; // set time out con.setConnectTimeout(9000); // Log.v("instalacion", "conectando"); con.connect("62.212.77.173"); // Log.v("instalacion", "conectado"); if (con.login("soda", "pepino")) { // Log.v("instalacion", "login"); con.enterLocalPassiveMode(); // important! Log.v("instalacion", "changeWorkingDirectory - " + con.printWorkingDirectory()); // con.changeWorkingDirectory("" + "tessdata" + ""); Log.v("instalacion", "changeWorkingDirectory - " + con.printWorkingDirectory()); String[] files = con.listNames(); FTPFile[] directories = con.listDirectories(); FTPFile[] archivos = con.listFiles(); for (int i = 0; i < directories.length; i++) { Log.v("instalacion", directories[i].getName().toString()); } for (int i = 0; i < archivos.length; i++) { Log.v("instalacion", archivos[i].getName().toString()); } // DESCARGA System.out.println(" --- Remote system is " + con.getSystemName()); con.setFileType(FTP.BINARY_FILE_TYPE); con.enterLocalPassiveMode(); filename = "tessdata.zip"; for (int i = 0; i < archivos.length; i++) { Log.v("----- instalacion", archivos[i].getName().toString()); if (archivos[i].getName().toString().equals(filename)) { size = archivos[i].getSize(); } } try { fos = new BufferedOutputStream( new FileOutputStream( Environment.getExternalStorageDirectory().toString() + "/" + filename)); // Log.i("instalacion"," FileOutputStream "); InputStream input = con.retrieveFileStream("tessdata.zip"); byte data[] = new byte[1024]; long total = 0; int count; while ((count = input.read(data)) != -1) { total += count; // publishing the progress.... // publishProgress((int) (total * 100 / data.length)); publishProgress( Integer.valueOf((int) (((total * 100 / data.length) * 1000) / size))); // Log.i("instalacion", String.valueOf( (((int) (total * // 100 / data.length))*100)/size )); // publishProgress(count); fos.write(data, 0, count); } fos.flush(); fos.close(); con.logout(); con.disconnect(); } catch (Exception e) { // TODO: handle exception Log.e( "instalacion", "ERROR al obtener la actualizaci—n de Elara : " + e.getMessage() + " "); return -4; } } else { // Log.e("instalacion","Nombre usuario o contrase–a ftp no valido."); Log.e("instalacion", "Nombre usuario o contrase–a ftp no valido. "); return -5; } } catch (Exception e) { Log.e("instalacion", "ERROR de conexion : " + e.getMessage() + " "); return -2; } try { con.logout(); return 0; } catch (IOException e) { // Log.e("instalacion",e.getMessage()); Log.e("instalacion", "ERROR al desconectar del FTP : " + e.getMessage() + " "); return 0; } } catch (Exception e) { // Log.e("instalacion",e.getMessage()); Log.e( "instalacion", "ERROR al buscar actualizaciones de Elara: " + e.getMessage() + " "); return -1; } }