Created
March 3, 2014 17:36
-
-
Save zwetan/9330194 to your computer and use it in GitHub Desktop.
custom directory listing with redtamarin
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import C.errno.*; | |
import C.stdlib.*; | |
import C.dirent.*; | |
import C.sys.stat.*; | |
trace( "----" ); | |
function getFilesBySize( dirname:String, smallerFirst:Boolean = true ):Array | |
{ | |
var entries:Array = []; | |
//format: { name: , size: } | |
var d:DIR = opendir( dirname ); | |
if( d == null ) | |
{ | |
//opendir() set errno | |
return null; | |
} | |
var dp:dirent; | |
var statbuf:status; | |
var ffd:int; | |
while( (dp = readdir(d)) != null ) | |
{ | |
//ignore dot and dotdot | |
if( (dp.d_name == ".") || (dp.d_name == "..") ) | |
{ | |
continue; | |
} | |
statbuf = new status(); | |
ffd = stat( dirname + "/" + dp.d_name, statbuf ); | |
if( S_ISREG( statbuf.st_mode ) ) | |
{ | |
entries.push( { name:dp.d_name, size:statbuf.st_size } ); | |
} | |
} | |
closedir( d ); | |
if( smallerFirst ) | |
{ | |
entries.sortOn( "size", Array.NUMERIC ); | |
} | |
else | |
{ | |
entries.sortOn( "size", Array.DESCENDING | Array.NUMERIC ); | |
} | |
return entries; | |
} | |
function printFiles( files:Array ):void | |
{ | |
var i:uint; | |
var len:uint = files.length; | |
var file:Object; | |
for( i=0; i<len; i++ ) | |
{ | |
file = files[i]; | |
trace( file.name + " - " + file.size + " bytes" ); | |
} | |
} | |
var list:Array = getFilesBySize( "." ); | |
trace( "found " + list.length + " files" ); | |
printFiles( list ); | |
trace( "----" ); | |
trace( "bye bye program" ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment