docs: def create_file(self, name: str, generate_unique_name: bool = False):
          '''
          create a `FileInfo` for a new file.
  
          if the file was exists, and `generate_unique_name` if `False`, raise `FileExistsError`.
  
          the op does mean the file is created on disk.
          '''
          def enumerate_name():
              yield name
              index = 0
              while True:
                  index += 1
                  yield f'{name} ({index})'
          for n in enumerate_name():
              path = os.path.join(self._path, n)
              if os.path.exists(path):
                  if not generate_unique_name:
                      raise FileExistsError
              return FileInfo(path)