我有以下任务
Activity 有一个 Copy 按钮,单击该按钮时,会将所有文件从应用程序目录复制到 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). 有一个方法getApplicationInfo().dataDir,但它返回一个字符串,我需要一个文件。有没有办法解决这个问题?或者还有比这更好的方法吗?
1 个回答