0 votos

Hola, no sé si alguien ve los post, o si el administrador del foto sigue por aquí, porque veo cantidad de post sin responder, si no es así, y ve este post, que informe de que el foro está muerto para no seguir preguntando.

 

Dicho esto, paso a pedir vuestra ayudar para ver si puedo solucionar este problema....

 

Estoy intentando copiar una carpeta de un lugar a otro mostrando una barra de progreso.
En este caso, estoy intentando copiar un archivo, que supongo que será igual que una carpeta con 100 archivos.

El archivo se copia, pero se muestra el ProgressBar sin que la barra muestre nada.


Este es el código que estoy utilizando en el onCreateView:

 

    FileInputStream fileInputStream;
    FileOutputStream fileOutputStream;

    Thread copyingThread;

    ProgressDialog progressDialog;

    Handler mainHandler = new Handler(Looper.getMainLooper());

------------------------------

copyingThread = new Thread(new Runnable() {
    @Override
    public void run() {
        File sourceFile = new File(Environment.getExternalStoragePublicDirectory(DIRECTORY_DOCUMENTS) + "/Documentos.rar");
        File destFile = new File(Environment.getExternalStoragePublicDirectory(DIRECTORY_DOCUMENTS) + "/11/Archivo Copiado.rar");

        long length = sourceFile.length();
        int bytesRead;
        int totalBytesRead = 0;
        byte[] buffer = new byte[4 * 1024]; 
        try {
            fileInputStream = new FileInputStream(sourceFile);
            fileOutputStream = new FileOutputStream(destFile);

            while (!Thread.currentThread().isInterrupted()
                    && (bytesRead = fileInputStream.read(buffer)) != -1) {

                fileOutputStream.write(buffer, 0, bytesRead);

                totalBytesRead += bytesRead;
                int percent = (int) (totalBytesRead * 100 / length);

                mainHandler.post(new Runnable() {
                    @Override
                    public void run() {

                        progressDialog = new ProgressDialog(getActivity());
                        progressDialog.setTitle("Titulo");
                        progressDialog.setMax(100);
                        progressDialog.setMessage("Mensaje ProgressBar");
                        progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                        progressDialog.show();
                        progressDialog.setCancelable(false);

                        progressDialog.setProgress(percent);

                    }
                });
            }
        } catch (Exception e) {
            System.out.println("foo");
        }
    }
});

 

Bueno Ramon, si ves este post y te animas a responder, te lo agradeceria.

 

Gracias.

por en Android

Por favor, ingresa o regístrate para responder a esta pregunta.