« Return to Thread: Request for eachFileRecursive

Re: Request for eachFileRecursive

by Jesse Eichar-3 :: Rate this Message:

Reply to Author | View in Thread

I like that.  That would allow me to do my usual case but also the  
other operations I was thinking about like find, filter, etc...

Cool.  I will get on this.

On 24-Jul-08, at 4:55 PM, Stepan Koltsov wrote:

> I think it would be better to have
>
> def childrenRecursively: Iterable[File]
>
> method, that returns all children recursively, but lazily, i. e. it
> does evaluation when it elements accessed.
>
> S.
>
> On Thu, Jul 24, 2008 at 18:49, Jesse Eichar <jesse.eichar@...>  
> wrote:
>> I have a request for the FileExtras class (I'm willing to write the  
>> code and
>> the tests if my proposal is accepted).  I have found my self having  
>> to over
>> and over write a method for recursing through a directory graph and  
>> doing
>> something to many or all of the files.  For example I might be  
>> deleting all
>> .svn directories or some other task.
>>
>> Probably the reason for this is because I am introducing Scala at  
>> my company
>> through scripts and maybe a tool for automated builds (although I'm  
>> less
>> convinced this is a good idea).
>>
>> Feel free to shoot me down but it does seem like a useful method  
>> for the
>> FileExtras class.
>>
>> The obvious way to implement it is in a "in-order" traversal.  
>> Something
>> like the following:
>>
>>> import java.io.File
>>>
>>> def eachChildRecursive( parent:File,  function:File=>Unit ):Unit = {
>>>       parent.listFiles.foreach { child =>
>>>               function(child)
>>>               if(child.isDirectory())
>>>                       eachChildRecursive(child,function)
>>>       }
>>> }
>>>
>>> val here = new File(".")
>>>
>>> eachChildRecursive( here, println _ )
>>
>> However by calling the function after the if statement we could  
>> perform a
>> depth-first traversal.
>>
>> Is there any desire by anyone else to see this in the library?  I  
>> have
>> already written it at least 5 times which means it will go into my  
>> private
>> library otherwise.  Seeing that ScalaX has a much wider audience I  
>> thought
>> to offer my services in writing for scalax.
>>
>> Jesse
>>
>>


 « Return to Thread: Request for eachFileRecursive