src/Pure/System/standard_system.scala
changeset 34298 13e9f1f4acd9
parent 34258 e936d3c35ce0
child 34300 3f2e25dc99ab
equal deleted inserted replaced
34297:5c0a2583f997 34298:13e9f1f4acd9
     8 
     8 
     9 import java.util.regex.Pattern
     9 import java.util.regex.Pattern
    10 import java.util.Locale
    10 import java.util.Locale
    11 import java.io.{BufferedWriter, OutputStreamWriter, FileOutputStream,
    11 import java.io.{BufferedWriter, OutputStreamWriter, FileOutputStream,
    12   BufferedInputStream, FileInputStream, BufferedReader, InputStreamReader,
    12   BufferedInputStream, FileInputStream, BufferedReader, InputStreamReader,
    13   File, IOException}
    13   File, FileFilter, IOException}
    14 
    14 
    15 import scala.io.Source
    15 import scala.io.Source
    16 import scala.util.matching.Regex
    16 import scala.util.matching.Regex
    17 import scala.collection.mutable
    17 import scala.collection.mutable
    18 
    18 
    94   def write_file(file: File, text: CharSequence)
    94   def write_file(file: File, text: CharSequence)
    95   {
    95   {
    96     val writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), charset))
    96     val writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), charset))
    97     try { writer.append(text) }
    97     try { writer.append(text) }
    98     finally { writer.close }
    98     finally { writer.close }
       
    99   }
       
   100 
       
   101   def find_files(start: File, ok: File => Boolean): List[File] =
       
   102   {
       
   103     val files = new mutable.ListBuffer[File]
       
   104     val filter = new FileFilter { def accept(entry: File) = entry.isDirectory || ok(entry) }
       
   105     def find_entry(entry: File)
       
   106     {
       
   107       if (ok(entry)) files += entry
       
   108       if (entry.isDirectory) entry.listFiles(filter).foreach(find_entry)
       
   109     }
       
   110     find_entry(start)
       
   111     files.toList
    99   }
   112   }
   100 
   113 
   101 
   114 
   102   /* shell processes */
   115   /* shell processes */
   103 
   116