Как я могу отобразить индикатор выполнения при копировании файлов с использованием файлов Apache FileUtils? Android

#android #file #io #apache-commons

#Android #файл #io #apache-commons

Вопрос:

Я использую библиотеку Apache commons для копирования файлов из одного каталога в другой. Проблема, с которой я сталкиваюсь, заключается в том, что я не могу найти способ обновить индикатор выполнения при копировании файла. Моей первоначальной мыслью было использовать обратный вызов, но нет способа передать обратный вызов методу copyfile.

 FileUtils.copyFileToDirectory(fileSrc, fileDest);
  

Комментарии:

1. вы получили какое-либо решение?

Ответ №1:

Я решил свою проблему, как показано ниже, возможно, это будет вам полезно.

 if (mAdapter != null amp;amp; mAdapter.getItemCount() > 0) {
    final ArrayList<StoryModel> selectedList = mAdapter.getSelectedData();

    if (selectedList.size() > 0) {

        final ProgressDialog pd = new ProgressDialog(getActivity());
        pd.setMessage("Saving Stories....");
        pd.show();

        Thread t = new Thread(new Runnable() {
            @Override
            public void run() {

                try {
                    for (StoryModel imageModel : selectedList) {
                        String srcFilePath = imageModel.getUrl();
                        Log.d(TAG, "onOptionsItemSelected: "   srcFilePath);
                        org.apache.commons.io.FileUtils.copyFileToDirectory(new File(srcFilePath), new File(FileUtils.getAppPath(mContext)));
                    }
                } catch (IOException ignored) {

                }
                Log.d(TAG, "run: Dismissed....");
                pd.dismiss();
            }
        });
        t.start();
    } else {
        Toast.makeText(mContext, R.string.string_error_select_story_to_download, Toast.LENGTH_LONG).show();
    }
} else {
    Toast.makeText(mContext, R.string.string_error_select_story_to_download, Toast.LENGTH_LONG).show();
}
  

Спасибо 🙂