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

J'ai un flux de répertoire contenant tous les fichiers texte trouvés dans le chemin de répertoire spécifié. Comment puis-je récupérer la première valeur de ce flux sans utiliser de boucle?Comment obtenir la première valeur d'un DirectoryStream sans utiliser de boucle

+2

Voulez-vous dire '" * txt "ou avez-vous vraiment l'intention de rechercher le fichier unique nommé" .txt "' seulement? Dans ce dernier cas, vous devriez utiliser 'DirectoryPath.resolve (". Txt ")' et 'Files.exists' ... – Holger

+0

oui, je voulais dire" * .txt ", désolé pour la faute de frappe – Raskill

Répondre

1

De retour que la première entrée trouvée:

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

Vous pouvez également vérifier s'il y a même au moins un fichier avant d'appeler next():

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

Merci, cela m'a beaucoup aidé! – Raskill