import os

def generate_tree(start_path='.', max_depth=2):
    lines = []

    def _tree(dir_path, depth, prefix):
        if depth > max_depth:
            return
        entries = sorted(os.listdir(dir_path))
        for i, entry in enumerate(entries):
            path = os.path.join(dir_path, entry)
            connector = "└── " if i == len(entries) - 1 else "├── "
            lines.append(prefix + connector + entry)
            if os.path.isdir(path):
                extension = "    " if i == len(entries) - 1 else "│   "
                _tree(path, depth + 1, prefix + extension)

    lines.append(start_path)
    _tree(start_path, 1, '')
    return '\n'.join(lines)

def save_tree_to_file(start_path='.', max_depth=2, output_file='tree.txt'):
    tree_output = generate_tree(start_path, max_depth)
    with open(output_file, 'w', encoding='utf-8') as f:
        f.write(tree_output)
    print(f"Árbol guardado en: {output_file}")

# Ejemplo de uso:
# Puedes cambiar estos valores según lo necesites
save_tree_to_file(start_path=r'E:\Fitz_Studio', max_depth=3, output_file=r'E:\Fitz_Studio\data\files\txt\tree.txt')
