Есть следующее задание
На 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.
Есть ли способ решить это? Или есть пути лучше этого?
File fileDir = new File(getApplicationInfo().dataDir);
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Для чего эти аннотации существуют понятно, но вот что будет если в главном классе по иерархии их не указать, просто пропустить?
В таблице в теге <td> я прописываю background="https://namecom/static/name/img/bg