file.getAbsolutePath()
方法存在一些问题,我也尝试了f.getcanonicalPath();
方法。
而不是
C:/ Documents and Settings
打印
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);
答案 0 :(得分:1)
在fs
中只有C:
中文件的名称,如果您将文件名提供给文件对象,则将名称添加到当前工作目录中。
您可以更改代码:
File f = new File("C:/");
File[] fs = f.listFiles();
for (File fsv : fs) {
String ap = fsv.getAbsolutePath();
System.out.println(ap);
}
我希望它有所帮助。
答案 1 :(得分:1)
它花了一点时间,我仍然试图了解更多,但我发现了一些可能也有用的东西。
除了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();
}
或java 8
try {
Files.walk(Paths.get("C://")).forEach(System.out::println);
} catch(IOException e){ e.printStackTrace(); }