//drives 逻辑分区 namespace fsys.drives; each = function(f,ds){ var i = 1; ds = ds || ::Kernel32.GetLogicalDrives(); return function(){ while(i<32){ i++; if( ds & (1 << i) ) { var d = ..string.pack('A'# + i) + ":"; var t = ::Kernel32.GetDriveType( d ) if(!f || (t === f) ) return d,t; } } } } eachFixed = function(){ return each(3/*_DRIVE_FIXED*/); } eachRemovable = function(){ return each(2/*_DRIVE_REMOVABLE*/); } get = lambda(ds,f) ..table.array(,each(f,ds)); getFixed = lambda() ..table.array(,each(3/*_DRIVE_FIXED*/)); getRemovable = lambda() ..table.array(,2/*_DRIVE_REMOVABLE*/); free = function(){ var dr = ::Kernel32.GetLogicalDrives(); for(i=2;31){ if( !( dr & (1<