v2-refactor-temp/docs/file-manager/notes-file-tree.md
本文档说明当前版本笔记功能如何管理文件树,包括存储位置、树结构加载、文件监听与文件操作路径。
window.api.getAppInfo().notesPath。notesPath 存在于 Redux(store/note),通过 useNotesSettings 读写。getNotesDir() 创建。loadTree(notesPath) 获取目录结构。loadTree 通过 window.api.file.getDirectoryStructure 读取真实文件系统树。sortTree 按用户设置排序(A-Z、更新时间等)。mergeTreeState 会把 starredPaths 与 expandedPaths 合并回树节点状态。相关实现:
src/renderer/pages/notes/NotesPage.tsxsrc/renderer/services/NotesService.tssrc/renderer/services/NotesTreeService.tswindow.api.file.startFileWatcher(notesPath) 启动监听。FileStorage 的 chokidar watcher。addDir -> window.api.file.mkdir。addNote -> window.api.file.write(写入 .md)。delNode -> deleteExternalFile / deleteExternalDir。renameNode -> file.rename / file.renameDir。所有操作直接作用于文件系统,不经过 db.files。
笔记只接受 Markdown 文件(.md, .markdown)。
上传路径:
useNotesFileUpload 收集文件列表。uploadNotes 优先使用 main 侧批量上传:
window.api.file.batchUploadMarkdown(filePaths, targetPath)uploadNotesLegacy)。window.api.file.write(targetPath, content)。db.files。/files)仅展示 db.files 中的记录,因此不会显示笔记文件。db.files 的文件引用体系割裂,难以统一检索或跨业务归档。