Android, копирование файлов

233
10 сентября 2017, 00:05

Есть следующее задание

На Activity имеется кнопка Копировать, при нажатии на которую производится копирование всех файлов каталога приложения на SD карту в директорию, указанную в поле ввода.

Я так понял, что надо скопировать вообще все файлы проекта. Есть следующий метод для копирования файла

public void copyFile(File sourceFile, File destFile) throws IOException {
    if(!destFile.exists()) {
        destFile.createNewFile();
    }
    FileChannel source = null;
    FileChannel destination = null;
    try {
        source = new FileInputStream(sourceFile).getChannel();
        destination = new FileOutputStream(destFile).getChannel();
        destination.transferFrom(source, 0, source.size());
    }
    finally {
        if(source != null) {
            source.close();
        }
        if(destination != null) {
            destination.close();
        }
    }
}

Есть метод получения всех файлов в директории

public ArrayList<File> listFilesWithSubFolders(File dir) {
        ArrayList<File> files = new ArrayList<File>();
        for (File file : dir.listFiles()) {
            if (file.isDirectory())
                files.addAll(listFilesWithSubFolders(file));
            else
                files.add(file);
        }
        return files;
    }

Но я не знаю, как получить саму папку с приложением для того, чтобы передать ее в метод listFilesWithSubFolders(File dir). Eсть метод getApplicationInfo().dataDir, но он возвращает String, а мне нужен File. Есть ли способ решить это? Или есть пути лучше этого?

Answer 1
File fileDir = new File(getApplicationInfo().dataDir);
READ ALSO
что будет если к классу не добавить @MappedSuperclass и @Access(AccessType.FIELD)?

что будет если к классу не добавить @MappedSuperclass и @Access(AccessType.FIELD)?

Для чего эти аннотации существуют понятно, но вот что будет если в главном классе по иерархии их не указать, просто пропустить?

217
Верстка писем, фоновое изображение

Верстка писем, фоновое изображение

В таблице в теге <td> я прописываю background="https://namecom/static/name/img/bg

236