如果只要求列出当前文件夹下的文件,代码如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import
java.io.File;
class
Test12 {
public
static
void
main(String[] args) {
File f =
new
File(
"/Users/Hao/Downloads"
);
for
(File temp : f.listFiles()) {
if
(temp.isFile()) {
System.out.println(temp.getName());
}
}
}
}
|
如果需要对文件夹继续展开,代码如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
import
java.io.File;
class
Test12 {
public
static
void
main(String[] args) {
showDirectory(
new
File(
"/Users/Hao/Downloads"
));
}
public
static
void
showDirectory(File f) {
_walkDirectory(f,
0
);
}
private
static
void
_walkDirectory(File f,
int
level) {
if
(f.isDirectory()) {
for
(File temp : f.listFiles()) {
_walkDirectory(temp, level +
1
);
}
}
else
{
for
(
int
i =
0
; i < level -
1
; i++) {
System.out.print(
"\t"
);
}
System.out.println(f.getName());
}
}
}
|
在Java 7中可以使用NIO.2的API来做同样的事情,代码如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
class
ShowFileTest {
public
static
void
main(String[] args)
throws
IOException {
Path initPath = Paths.get(
"/Users/Hao/Downloads"
);
Files.walkFileTree(initPath,
new
SimpleFileVisitor<Path>() {
@Override
public
FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
throws
IOException {
System.out.println(file.getFileName().toString());
return
FileVisitResult.CONTINUE;
}
});
}
}
|