这可能真的很不错,但我正在尝试访问文件目录,以便我可以加载其中的所有图像。出于某种原因,当我输入一个文件目录,如“/ Images”时,当我创建一个新文件并且Windows无法找到该目录时,它会显示为“\ Images”,因为它是反斜杠...
代码:
private final String imgDir = "/Images";
File dir = new File(imgDir);
System.out.println(imgDir);
System.out.println(dir);
File[] files = dir.listFiles(new FilenameFilter() {
public boolean accept(File dir, String fname) {
return fname.endsWith(".png") || fname.endsWith(".bmp") || fname.endsWith(".jpg");
}
});
打印输出分别为“/ Images”和“\ Images”。文件总是出现null因为dir是错误的。任何想法为什么会这样?
编辑: 好的,我得到了它的工作。你们都说我需要使用相对路径,但是因为它是在src文件夹中我只需要将它设为“。\ src \ Images”:D 这样做是不好的做法?我应该只将Images文件夹移动到根项目目录吗?
答案 0 :(得分:2)
尝试使用File.separator
而不是显式斜杠来编写字符串,例如:
private final String imgDir = File.separator + "Images"
。
答案 1 :(得分:0)
Windows无法找到该目录,因为它是反斜杠
这不是原因。 Windows本身使用反斜杠。
文件总是为null,因为dir错误。
这样就可以了,例如,根据您的意见,您的意思是./Images
,但实际上您编的是/Images
。