Re: [問題] 請問如何以相對路徑的方式列出目錄
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)
討論串 (同標題文章)