android 递归遍历系统根目录下所有文件及目录,并把文件各自放到对应的目录里
时间: 2023-08-01 10:11:18 浏览: 91
在 Android 平台上,由于系统权限的限制,不能直接遍历系统根目录。如果你想遍历应用的私有目录或者外部存储,可以使用以下代码:
```java
import java.io.File;
public class FileList {
public static void main(String[] args) {
File root = new File("/sdcard/");
listFiles(root, root);
}
private static void listFiles(File root, File dir) {
File[] files = dir.listFiles();
for (File file : files) {
if (file.isDirectory()) {
File subDir = new File(root, file.getName());
if (!subDir.exists()) {
subDir.mkdir();
}
listFiles(root, file);
} else {
File destFile = new File(root, file.getName());
file.renameTo(destFile);
}
}
}
}
```
这个代码会递归遍历指定目录下的所有文件和子目录,并把文件各自放到对应的目录里。在这个例子中,我们假设根目录为 `/sdcard/`,如果有一个文件 `/sdcard/folder1/folder2/file.txt`,那么这个文件会被移动到 `/sdcard/folder2/file.txt`。你可以根据自己的需求修改代码来处理文件列表。注意,在 Android 平台上,你需要在 AndroidManifest.xml 文件中添加相关权限才能操作外部存储。
阅读全文