What you want to do is readdir, and then stat each entry.  Once you have
the file stats, you can sort the list in JavaScript.  The control-flow can
be tricky the first time you do this since stat is an async function.
 There are many examples on the web of readdir with stat.  There might even
be libraries to do this in npm.

On Thu, Jun 21, 2012 at 2:51 PM, Adeel Qureshi <adeelmahm...@gmail.com>wrote:

> I was trying to get a listing of files in a directory and send the output
> to clients using socket.io. First I tried with readdir which works good
> and pretty fast but is not able to sort the files by modified date (or
> atleast I wasnt able to find out how).
>
>  fs.readdir(logDrivesPath.replace(/#/,drive), function(err, files){
>                         console.log(files);
>                         socket.emit('filesList', files);
> });
>
> so i then used child process ls to get the listing in correct sorting order
>
> var ls = exec('ls -t ' + logDrivesPath.replace(/#/,drive) + ' | xargs -n1
> basename',
>                         function(err, stdout, stderr){
>                                 console.log("ls exec completed");
>                                 if(err == null){
>                                         socket.emit('filesList',
> stdout.toString('utf8').split('\n'));
>                                 }
>                                 else{
>                                         console.log(stderr);
>                                         console.log(err);
>                                 }
>                         });
>
> the second option works fine but its much slower than the readdir option.
> It almost takes 3-4 seconds to get the listing while readdir returns the
> same list in less than a second so there is a significant difference. I was
> wondering if there is a way to use readdir but get the files sorted
> properly and secondly why is the childprocess option so much slower than
> readdir.
>
> Thanks
> Adeel
>
> --
> Job Board: http://jobs.nodejs.org/
> Posting guidelines:
> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> You received this message because you are subscribed to the Google
> Groups "nodejs" group.
> To post to this group, send email to nodejs@googlegroups.com
> To unsubscribe from this group, send email to
> nodejs+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/nodejs?hl=en?hl=en
>

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to