2017-01-31 11 views
1
DirectoryStream<Path> stream = Files.newDirectoryStream(DirectoryPath, ".txt"); 

私は、指定されたディレクトリパスにあるすべてのテキストファイルを保持するディレクトリストリームを持っています。ループを使用せずにこのストリームの最初の値を取得するにはどうすればよいですか?ループを使用せずにDirectoryStreamの最初の値を取得する方法

+2

あなたは '意味ですかは" * .TXTあなたは本当に '' .txt ''という名前の唯一のファイルを探すつもりですか?後者の場合、 'DirectoryPath.resolve(" .txt ")'と 'Files.exists'を使用するべきです... – Holger

+0

はい、私は" * .txt "を意味しています、タイプミスのためにごめんなさい – Raskill

答えて

1

戻るだけ最初に見つかったエントリ:またnext()を呼び出す前にも、少なくとも1つのファイルがあるかどうかを確認することをお勧めします

Files.newDirectoryStream(DirectoryPath, ".txt").iterator().next() 

Iterator<Path> textFileIterator = Files.newDirectoryStream(DirectoryPath, ".txt").iterator(); 
if (textFileIterator.hasNext()) { 
    Path firstFoundTextFile = textFileIterator.next(); 
} 
+0

ありがとう、これは私を助けました! – Raskill