docs: def list_dir(sourceDir, include_source=None, include_file=True):
      """与 :func:`os.listdir()` 类似，但提供一些筛选功能，且返回生成器对象。
  
      :param str sourceDir: 待处理的文件夹。
      :param bool include_source: 遍历结果中是否包含源文件夹的路径。
      :param bool include_file:    是否包含文件。True 表示返回的内容中既包含文件，又
                                  包含文件夹；Flase 代表仅包含文件夹。
      :return: 一个生成器对象。
  
      """
      for cur_file in os.listdir(sourceDir):
          if cur_file.lower() == ".ds_store":
              continue
          pathWithSource = os.path.join(sourceDir, cur_file)
          if include_file or os.path.isdir(pathWithSource):
              if include_source:
                  yield pathWithSource
              else:
                  yield cur_file