Re: [問題] 請問如何以相對路徑的方式列出目錄

看板java作者 (^^)時間14年前 (2011/05/04 20:10), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
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)
文章代碼(AID): #1DmK8WHk (java)
文章代碼(AID): #1DmK8WHk (java)