import 'dart:io'; import 'package:win_text_editor/app/models/file_node.dart'; class FileService { /// 延时加载目录内容(不递归) static Future> listDirectory(String path, {int parentDepth = 0}) async { final directory = Directory(path); final List nodes = []; if (await directory.exists()) { final entities = directory.listSync(); for (final entity in entities) { nodes.add( FileNode( name: entity.path.split(Platform.pathSeparator).last, path: entity.path, isDirectory: entity is Directory, depth: parentDepth + 1, // 关键修复:基于父节点深度+1 children: [], ), ); } } return nodes; } /// 递归构建完整文件树(原方法保留备用) static Future> buildFileTree(String rootPath) async { final rootDirectory = Directory(rootPath); final List nodes = []; if (await rootDirectory.exists()) { final entities = rootDirectory.listSync(); for (final entity in entities) { final node = FileNode( name: entity.path.split(Platform.pathSeparator).last, path: entity.path, isDirectory: entity is Directory, ); if (entity is Directory) { node.children.addAll(await buildFileTree(entity.path)); } nodes.add(node); } } return nodes; } static Future readFile(String filePath) async { return await File(filePath).readAsString(); } static Future writeFile(String filePath, String content) async { await File(filePath).writeAsString(content); } }