我正在尝试从两个数组中查找公用名称文件。我将两个不同文件夹的文件名保存在两个不同的数组中。
现在,我正在创建一个通用文件数组,其中将包含具有通用名称的文件。
filenames 1:包含文件夹1中文件的名称的数组。
filename 2:包含文件夹2中文件名的数组。
import java.io.File; import java.util.*; public class ListFiles1 { public static void main(String[] args) { String path1 = "C:\\"; String path2 = "D:\\"; File folder1 = new File(path1); File folder2 = new File(path2); String[] f1=folder1.list(); File[] listOfFiles1 = folder1.listFiles(); File[] listOfFiles2 = folder2.listFiles(); ArrayList<String> fileNames1 = new ArrayList<>(); ArrayList<String> fileNames2 = new ArrayList<>(); for (int i = 0; i < listOfFiles1.length; i++) { if (listOfFiles1[i].isFile()) { fileNames1.add(listOfFiles1[i].getName()); System.out.println(f1[i] + " is a file"); } } for (int j = 0; j < listOfFiles2.length; j++) { if (listOfFiles2[j].isFile()) { fileNames2.add(listOfFiles2[j].getName()); } } ArrayList<String> commonfiles = new ArrayList<>(); for (int i = 0; i < listOfFiles1.length; i++) { for (int j = 0; i < listOfFiles2.length; j++) { String tempfilename1; String tempfilename2; tempfilename1=fileNames1[i]; tempfilename2 = fileNames2[j]; if(tempfilename1.equals(tempfilename2)) { commonfiles.add(tempfilename1); } } } } }
我写了这段代码,但是编译器给出了这个错误:
Main.java:52: error: array required, but ArrayList<String> found tempfilename1=fileNames1[i]; ^ Main.java:53: error: array required, but ArrayList<String> found tempfilename2 = fileNames2[j]; ^
PS:我是新手…
如果filenames1是array您不能使用ArrayListmethod get(int i)。
filenames1
array
ArrayList
get(int i)
您需要使用来访问array元素arrayName[elementIndex]。
arrayName[elementIndex]
在您的情况下:
tempfilename1=filenames1[i]; tempfilename2=fileNames2[j];