0

这可能真的很无聊,但我正在尝试访问一个文件目录,以便可以加载其中的所有图像。出于某种原因,当我输入一个文件目录(例如“/Images”)时,当我创建一个新文件时它会显示为“\Images”,而 Windows 找不到该目录,因为它是一个反斜杠......

代码:

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”。由于目录错误,文件总是显示为空。任何想法为什么会这样?

编辑:好的,我让它工作了。你们没关系,我需要使用相对路径,但由于它位于 src 文件夹中,我只需要将其设为“.\src\Images”:D 这样做是不好的做法吗?我应该将图像文件夹移动到根项目目录吗?

4

2 回答 2

2

尝试使用File.separator而不是显式斜杠来编写字符串,例如: private final String imgDir = File.separator + "Images".

于 2012-06-29T04:19:58.483 回答
0

Windows 找不到目录,因为它是反斜杠

这不是原因。Windows 本身使用反斜杠。

由于目录错误,文件总是显示为空。

这样就可以了,例如,如果按照您的评论,您的意思是./Images但您实际上编码了/Images.

于 2012-06-29T06:21:37.190 回答