黑马程序员技术交流社区
标题:
关于利用FIle对象遍历文件夹下所有的文件
[打印本页]
作者:
大大大卷
时间:
2015-9-22 22:57
标题:
关于利用FIle对象遍历文件夹下所有的文件
用FIle对象遍历,将文件名存到hashset中,利用递归遍历子目录
代码如下
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashSet;
import java.util.Iterator;
public class DeepGet {
public static int count = 0;
public static void main(String[] args) throws IOException {
// TODO 自动生成的方法存根
File f = new File("D:\\Sid Meier's Civilization V");
HashSet<File> hs = new HashSet<File>();
deepGet(f,hs);
FileWriter fw = new FileWriter("root.txt");
BufferedWriter buw = new BufferedWriter(fw);
Iterator<File> is = hs.iterator();
while(is.hasNext()){
String str = is.next().toString();
buw.write(str);
buw.newLine();
buw.flush();
System.out.println(str);
}
buw.close();
System.out.println(hs.size());
System.out.println(count);
}
public static HashSet<File> deepGet(File f,HashSet<File> hs)
{
File[] files = f.listFiles();
for (File file : files) {
if(file.isDirectory()){
deepGet(file,hs);
count++;
}
else
{
hs.add(file);
}
}
return hs;
}
}
复制代码
最后将文件名写到一个txt文件中,
作者:
zllqxy
时间:
2015-9-22 23:46
谢谢分享
作者:
一枝梨花压海棠
时间:
2015-9-23 00:18
不错~~~~~~~~~~~~~~~~~~~~~
作者:
fmi110
时间:
2015-9-23 10:22
为什么要加一个HashSet呢?递归的时候直接输出到文件不好吗?
作者:
pegasus
时间:
2015-9-23 10:44
public static void main(String[] args) throws IOException {
String glob = "glob:**.*";
String path = "E:/pegasus";
match(glob, path);
}
private static void match(String glob, String location) throws IOException {
final PathMatcher pathMatcher = FileSystems.getDefault()
.getPathMatcher(glob);
Files.walkFileTree(Paths.get(location), new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path path,
BasicFileAttributes attrs) throws IOException {
if (pathMatcher.matches(path)) {
System.out.println(path);
}
return FileVisitResult.CONTINUE;
}
});
}
复制代码
作者:
生存追求
时间:
2015-9-23 13:25
谢谢分享
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2