def os_file_listall(dir1, pattern='*.*', dirlevel=1, onlyfolder=0):
    """
   # DIRCWD=r"D:\\_devs\\Python01\\project"
   # aa= listallfile(DIRCWD, "*.*", 2)
   # aa[0][30];   aa[2][30]
  """
    import fnmatch
    import os
    import numpy as np
    matches = []
    dir1 = dir1.rstrip(os.path.sep)
    num_sep = dir1.count(os.path.sep)
    if onlyfolder:
        for root, dirs, files in os.walk(dir1):
            num_sep_this = root.count(os.path.sep)
            if num_sep + dirlevel <= num_sep_this:
                del dirs[:]
            matches.append([])
            matches.append([])
            matches.append([])
            for inner_dirs in fnmatch.filter(dirs, pattern):
                matches[0].append(os.path.splitext(inner_dirs)[0])
                matches[1].append(os.path.splitext(root)[0])
                matches[2].append(os.path.join(root, inner_dirs))
        return np.array(matches)
    for root, dirs, files in os.walk(dir1):
        num_sep_this = root.count(os.path.sep)
        if num_sep + dirlevel <= num_sep_this:
            del dirs[:]
        matches.append([])
        matches.append([])
        matches.append([])
        for inner_files in fnmatch.filter(files, pattern):
            matches[0].append(os.path.splitext(inner_files)[0])
            matches[1].append(os.path.splitext(inner_files)[1])
            matches[2].append(os.path.join(root, inner_files))
    return np.array(matches)
