Viewing contents of file '../idllib/astron/contrib/landsman/allpro/find_files.pro'
;+
; Project : SOHO - CDS
;
; Name : FIND_FILES
;
; Purpose : Find multiple files in a multiple path
;
; Explanation : FIND_FILES splits the supplied PATHS string by calling
; FIND_ALL_DIR and then loops over all paths calling FIND_FILE()
; with each path plus the file specification, returning the full
; list of matching files. The supplied file specification may
; contain standard wildcard characters.
;
; Use : filelist = FIND_FILES(FILE_SPEC,PATHS)
;
; Inputs : FILE_SPEC: File specification, e.g., "s*r00.fits". Should
; *not* contain any path. Scalar string.
;
; PATHS: Scalar string containing one or more default paths to
; search for files matching the file specification. See
; FIND_ALL_DIR for a more detailed description. The
; current directory is NOT searched.
;
; Opt. Inputs : None.
;
; Outputs : Returns a string array with full path names of each file
; matching the file specification. If no files are found
; an empty string is returned.
;
; Opt. Outputs: None.
;
; Keywords : None.
;
; Calls : CONCAT_DIR(), FIND_ALL_DIR(), FIND_FILE(), PARCHECK, TYP()
;
; Common : None.
;
; Restrictions: Mmmm?
;
; Side effects: None known.
;
; Category : Utilities, Operating_system
;
; Prev. Hist. : Multi-path CDS_FITS_DATA created a need for it.
;
; Written : SVH Haugan, UiO, 23 April 1996
;
; Modified : Version 2, 6 August 1996
; Using find_all_dir for +/dir expansion, and using
; concat_dir in an attempt to be portable.
;
; Version : 2, 6 August 1996
;-
FUNCTION find_files,file_spec,paths
IF N_PARAMS() LT 2 THEN BEGIN
MESSAGE,"Use : filelist = find_files(file_spec,paths)"
END
parcheck,file_spec,1,typ(/str),0,'FILE_SPECIFICATION'
parcheck,paths,1,typ(/str),0,'PATHS'
allpaths = find_all_dir(paths,/plus_required)
FOR i = 0,N_ELEMENTS(allpaths)-1 DO BEGIN
newfiles = find_file(concat_dir(allpaths(i),file_spec))
IF newfiles(0) NE '' THEN BEGIN
IF N_ELEMENTS(files) EQ 0 THEN files = newfiles $
ELSE files = [files,newfiles]
END
END
IF N_ELEMENTS(files) EQ 0 THEN RETURN,''
RETURN,files
END