code: def copy_all_files_and_subfolders(src, dest, base_path_ignore, xtn_list):
  	
  	ensure_dir(dest)
  	fl = mod_fl.FileList([src], xtn_list, exclude_folders,  '')
  	all_paths = fl.get_list_of_paths()
  	fl.save_filelist(os.path.join(dest,'files_backed_up.csv'),  ["name", "path", "size", "date"])
  	
  	for p in all_paths:
  		dest_folder = os.path.join(dest, p[len(base_path_ignore):])
  		ensure_dir(dest_folder)
  		#print('copying ' + p)
  		copy_files_to_folder(p, dest_folder, xtn='*')
docs: file_tools.copy_all_files_and_subfolders(src, dest, backup_path, ['*.*'])
  	gets list of all subfolders and copies each file to 
  	its own folder in 'dest' folder
  	paths, xtn, excluded, output_file_name = 'my_files.csv')