我有一个文件数组,其中包含文件夹中的文件名列表。
e.g。
File file = new File("/path");
File[] arr = file.listFiles();
所以我的 arr 在文件路径中包含所有文件名。
说 arr [folder1,Folder2,Folder3]。
我还有一个字符串数组列表,其中包含(Folder3,Folder1,Folder2)。
我需要根据 arrrayList 顺序更改 arr 内容。
(即)处理后我的 arr 会有[Folder3,Folder1,Folder2]。
我需要这样做,因为我必须根据特定的层次结构阅读文件夹。
我是新手,请帮助我如何实现它。
答案 0 :(得分:2)
如果您已按所需顺序将文件夹名称作为字符串列表,为什么要使用File.listFiles()?
只需按照列出的顺序从名称中创建File对象,如下所示:
List< String > arrayList = Arrays.asList("Folder3", "Folder1", "Folder2");
File parent = new File("/path");
File[] arr = new File[arrayList.size()];
for ( int i = 0; i < arr.length; i++ )
arr[i] = new File(parent, arrayList.get(i));
// Now arr will contain File objects in the order they are listed in arrayList
答案 1 :(得分:-1)
首先,您需要使用 Arrays.asList 方法将数组转换为列表。然后,您可以使用 Collections.sort(yourNewArrayList)对数组列表进行排序:
List<File> sortedFileArrayList = Collections.sort(Arrays.asList(new File("/path").listFiles()));
但是,如果您只需要对数组进行排序而不转换为列表(因为排序不需要列表转换),您可以使用
Arrays.sort(new File("/path").listFiles());
代替。