Function Listfiles, path, pattern, COUNT=count, _Extra=e On_Error, 2 ; Check parameters. IF N_Elements(path) EQ 0 THEN Message, 'Please furnish a directory path.' IF N_Elements(pattern) EQ 0 THEN pattern='*' ; Forced to use slow version in VM mode. IF LMGR(/VM) THEN BEGIN RETURN, File_Search(path + pattern, /Test_Regular, Count=count, _Extra=e) ENDIF ; UNIX is fine, check for Windows. CASE Strupcase(!Version.OS_Family) of 'WINDOWS':BEGIN Spawn, 'dir ' + path + pattern + ' /b /a-D /ON', result, /Hide count = (result[0] eq '') ? 0 : N_Elements(result) RETURN, File_Dirname(path + pattern, /Mark) + result END 'UNIX':BEGIN RETURN, File_Search(path + pattern, /Test_Regular, Count=count, _Extra=e) END ENDCASE END