#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();
}
Спасибо 🙂