无法访问文件目录

时间:2012-06-29 04:13:51

标签: java file io directory slash

这可能真的很不错,但我正在尝试访问文件目录,以便我可以加载其中的所有图像。出于某种原因,当我输入一个文件目录,如“/ 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文件夹移动到根项目目录吗?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

  

Windows无法找到该目录,因为它是反斜杠

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

  

文件总是为null,因为dir错误。

这样就可以了,例如,根据您的意见,您的意思是./Images,但实际上您编的是/Images