使用Java重新排列文件数组内容

时间:2014-04-25 07:07:05

标签: java arrays file

我有一个文件数组,其中包含文件夹中的文件名列表。

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]。

我需要这样做,因为我必须根据特定的层次结构阅读文件夹。

我是新手,请帮助我如何实现它。

2 个答案:

答案 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());

代替。