From d296d64027626b77bf33cc2a0c01fa40891048f6 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Mon, 4 Jun 2012 17:41:28 +0400 Subject: [PATCH 1/2] File.listFiles(filter) --- libraries/stdlib/src/kotlin/io/Files.kt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libraries/stdlib/src/kotlin/io/Files.kt b/libraries/stdlib/src/kotlin/io/Files.kt index 52b24387fab..8b46f8ccf76 100644 --- a/libraries/stdlib/src/kotlin/io/Files.kt +++ b/libraries/stdlib/src/kotlin/io/Files.kt @@ -202,3 +202,12 @@ fun File.readLines(charset : String = "UTF-8") : List { return rs } + +/** + * Returns an array of files and directories in the directory that satisfy the specified filter. + */ +fun File.listFiles(filter : (file : File) -> Boolean) : Array? = listFiles( + object : FileFilter { + override fun accept(file: File?) = filter(file!!) + } +) as Array? From 9a7f3da6c6940536340bbf91608296169eda12ae Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Mon, 4 Jun 2012 19:57:31 +0400 Subject: [PATCH 2/2] test for File.listFiles(filter) --- libraries/stdlib/test/IoTest.kt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/libraries/stdlib/test/IoTest.kt b/libraries/stdlib/test/IoTest.kt index 5d46da4571f..98591f67527 100644 --- a/libraries/stdlib/test/IoTest.kt +++ b/libraries/stdlib/test/IoTest.kt @@ -71,4 +71,19 @@ class IoTest() : TestCase() { assertEquals(arrayList("Hello", "World"), list) } + + fun testListFiles() { + val dir = File.createTempFile("temp", System.nanoTime().toString())!! + dir.delete() + dir.mkdir() + + File.createTempFile("temp", "1.kt", dir) + File.createTempFile("temp", "2.java", dir) + File.createTempFile("temp", "3.kt", dir) + + val result = dir.listFiles { it.getName()!!.endsWith(".kt") } + + assertNotNull(result) + assertEquals(result!!.size, 2) + } }