java android nanohttpd - правильный способ скопировать файл, загруженный из временного хранилища, во внутреннее хранилище

Здесь был задан связанный с этим вопрос https://stackoverflow.com/questions/20869506/move-file-uploaded-from-nanohttpds-Contemporary-directory-to-sd-card

Пользователь, задавший вопрос, запрашивает копирование загруженного файла nanohttpd на внешнюю SD-карту. Однако, если мы хотим иметь копию загруженного файла во внутреннем хранилище, как мы можем это сделать? (Например, система, назначенная в соответствии с предпочтениями устройства, SD-карта или внутреннее хранилище)

автор вопроса нашел метод класса для создания копии загруженного файла с сервера nanohttpd (с помощью простого метода класса, который копирует из и в определенный каталог) https://stackoverflow.com/a/4770586/1673000

однако, как и где мы должны внедрять коды? (при правильном подходе)

  • следует ли нам внедрить этот код в исходный файл nanohttpd? (например, NanoHttpd.java), если да, то как нам реализовать код в основном файле класса.
  • можем ли мы сохранить исходный файл nanohttpd.java без изменений и добавить эту особенность, возможно, в другой файл класса? (например, другой файл класса, который «расширяет NanoHTTPD» анализируемым образцом HTML-кода) или какова рекомендуемая процедура с точки зрения наличия чистой структуры дизайна?

примечание: я надеялся, что смогу скопировать файл сразу после завершения операции nanohttpd, но временный файл всегда удаляется сразу после выключения nanohttpd.

Спасибо за прочтение


person Bigs    schedule 28.08.2014    source источник
comment
Поскольку ваше приложение отключает nanohttpd, оно может копировать эти файлы непосредственно перед закрытием. Почему нет? Я полагаю, что если вы сделаете три закачки, будет три файла?   -  person greenapps    schedule 29.08.2014


Ответы (1)


Все, что вам нужно сделать, чтобы переместить загруженный файл во внутреннее / внешнее хранилище:

  1. Реализует TempFileManagerFactory
  2. Реализует TempFileManager
  3. Реализует TempFile
  4. наконец, после создания сервера, позвоните

server.setTempFileManagerFactory (новая FileFactory ());

  1. Чтобы получить имя загруженного файла

Файлы карты = new HashMap ();

session.parseBody (файлы);

Log.d (ТЕГ, files.toString ());

  1. Затем вы можете получить доступ к файлу
person Nicholas Ng    schedule 11.12.2014