Java .GetAbsolutePath是否打印项目路径而不是系统路径?

Java .GetAbsolutePath是否打印项目路径而不是系统路径?,java,file,path,Java,File,Path,file.getAbsolutePath()方法有点问题,我也尝试了f.getcanonicalPath()方法 而不是 C:/文档和设置 它打印 C:\Users\me\Documents\NetBeansProjects\fileC\Documents and Settings 你能解释一下应该怎么改吗 多谢各位 f = new File(C://); fs = f.list(); for(String fsv : fs) { f = new File(f

file.getAbsolutePath()
方法有点问题,我也尝试了
f.getcanonicalPath()方法

而不是

C:/文档和设置

它打印

C:\Users\me\Documents\NetBeansProjects\fileC\Documents and Settings

你能解释一下应该怎么改吗

多谢各位

    f = new File(C://);
    fs = f.list();

    for(String fsv : fs) {
     f = new File(fsv);
     String ap = f.getAbsolutePath();
     System.out.println(ap);

fs
中,只有
C:
中的文件名,如果为文件对象指定文件名,则将该名称添加到当前工作目录中。 您可以这样更改代码:

    File f = new File("C:/");
    File[] fs = f.listFiles();
    for (File fsv : fs) {
        String ap = fsv.getAbsolutePath();
        System.out.println(ap);
    }

我希望这会有帮助。

这花了一点时间,我仍然试图了解更多,但我发现了一些可能也有用的东西

除了accessDeniedException之外,它是有效的。在java8中,代码似乎更短

如果有人对第一个代码有一个答案,那也太好了

谢谢

  Path p = Paths.get("C://");
FileVisitor<Path> fv = new SimpleFileVisitor<Path>() {
  public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
      throws IOException {
    System.out.println(file);
    return FileVisitResult.CONTINUE;
  }
};

try {
  Files.walkFileTree(p, fv);
} catch (IOException e) {
  e.printStackTrace();
}
}捕获(IOE异常){
e、 printStackTrace();}

谢谢您的回答。我试图用你的代码运行,但我只得到了“C:/”?我想在前面的代码中格式化字符串,但可能有更好的代码。可能打印的字符串取决于代码运行的文件夹。除非我不能很好地测试,因为IDE中的字符串是错误的。也许类“Files”中的方法“newDirectoryStream()”可能会有所帮助,但我应该了解更多。
try {
Files.walk(Paths.get("C://")).forEach(System.out::println);