function get_mms_selections_file, type, start_time=start_time, end_time=end_time,  $
  local_dir=local_dir, filename= filename
  ;return the latest if no times specified

  ; Build query.
  ; Start by building an array of arguments based on inputs.
  ; Many values may be arrays so join with ",".
  ; Note that a single value will be treated as an array of one by IDL.
  query_args = ["hack"] ;IDL doesn't allow empty arrays before version 8.
  if n_elements(filename)   gt 0 then query_args = [query_args, "file=" + strjoin(filename, ",")]
  if n_elements(start_time) gt 0 then query_args = [query_args, "start_time=" + start_time]
  if n_elements(end_time)   gt 0 then query_args = [query_args, "end_time=" + end_time]
  
  ; Join query args with "&". If there are no query args, return only the latest file.
  query = ""
  if n_elements(query_args) eq 1 then latest=1  $  ;no args so default to latest
  else  query = strjoin(query_args[1:*], "&") ;drop the "hack"
  
  ; Execute the query.
  ; Allow more than default number of files since they are small
  ; and when the limit is exceeded a unit test breaks
  status = download_mms_files(type, query, local_dir=local_dir, latest=latest, max_files=10000)

  return, status  
end