作者brianstw (^^)
看板java
标题Re: [问题] 请问如何以相对路径的方式列出目录
时间Wed May 4 20:10:05 2011
43~
因为Java7以经有了 加上在NIO方面似乎有新的做法
所以主管就建议直接上Java7写程式而非用JDK6了
因为我想要挖出一个在目录/var/log/hosts下的目录LIST
Directory structure
/var/log/host/ip a
/var/log/host/ip b
/var/log/host/ip c
我想要建立一个LIST里面有a,b,c
所以很冒险用了newDirectoryStream 这个method()
据估狗出来的样子似乎也是可以达到显示目录下所有的Directory
不过卡在 DirectoryStream<Path> stream = myDir.newDirectoryStream();
如果改成newDirectoryStream<Path>() 又会出错在(
如果改成((Object) myDir).newDirectoryStream() 一样错误
所以现在很囧
看了API
http://tinyurl.com/3vzcfgr
又感觉不知该怎麽解
还希望各位前辈协助 谢谢
< ( _ _ ) >
补上CODE
Path myDir = Paths.get("D:\\var\\log\\hosts");
DirectoryStream<Path> stream = myDir.newDirectoryStream();
try{
for (Path p : stream ) {
System.out.println(p);
}
}finally{
stream .close();
}
※ 编辑: brianstw 来自: 211.76.175.169 (05/04 20:10)
自问自答 有点囧
後来看这边後才发现
static DirectoryStream<Path> newDirectoryStream(Path dir)
原来我是少了(Path)阿阿阿阿
所以变成 DirectoryStream<Path> stream = Files.newDirectoryStream(myDir);
就可以了 谢谢Java板
※ 编辑: brianstw 来自: 211.76.175.169 (05/04 20:17)
补上java6 和 java7做法
//java6
File file = new File("D:\\var\\log\\hosts");
File[] files = file.listFiles();
for (int i=0;i<files.length;i++)
{
if (files[i].isDirectory())
System.out.println(files[i].getName());
}
//java7
Path myDir = Paths.get("D:\\var\\log\\hosts");
DirectoryStream<Path> stream = Files.newDirectoryStream(myDir);
try{
for (Path p : stream ) {
System.out.println(p);
}
}finally{
stream .close();
}
称不上经验的经验
※ 编辑: brianstw 来自: 211.76.175.169 (05/04 21:14)