Навигатор файловой структуры для локальных и сетевых папок. Работает в браузере в двух режимах — дерево и граф — с локальным агентом для доступа к реальной файловой системе.
- Дерево — классический список папок с поиском, развёртыванием и хлебными крошками
- Граф — колоночная визуализация уровней вложенности с навигацией вперёд/назад
- Локальный агент — сканирование папок и открытие в системном файловом менеджере (Windows / macOS / Linux)
- Корневой путь — ограничение доступа только заданной папкой и её вложениями
- Поделиться — ссылка
pathtree://и нативный путь под вашу ОС - READ-ONLY — агент только читает каталоги, без операций записи
Можно отдавать пользователям пакет без бинарников — только конфиг в dist/:
VEAFileTree/
├── agent/ ← исходники (нужны для сборки)
├── dist/
│ ├── pathtree-agent.json ← конфиг
│ └── build-agent.bat ← сборка на Windows
├── build-agent-windows.bat
└── file-tree-explorer-with-graph.html
Папку dist/*.exe в репозиторий / архив не включаем — агент собирается на месте.
- Установите Go 1.21+
- Запустите двойным щелчком один из скриптов:
build-agent-windows.bat(из корня VEAFileTree)dist\build-agent.bat(из папки dist)
- Появится
dist\pathtree-agent-windows-amd64.exe
dist\pathtree-agent-windows-amd64.exe./build-agents.shСоберётся только нужный бинарник для вашей платформы можно так:
cd agent
go build -o ../dist/pathtree-agent-darwin-arm64 ../build-agents.shWindows
dist\pathtree-agent-windows-amd64.exemacOS (Apple Silicon)
chmod +x dist/pathtree-agent-darwin-arm64
./dist/pathtree-agent-darwin-arm64Linux
chmod +x dist/pathtree-agent-linux-amd64
./dist/pathtree-agent-linux-amd64При первом запуске без root в конфиге откроется системный диалог выбора папки:
- Windows — окно выбора папки
- macOS — Finder
- Linux —
zenity,kdialogилиyad
Откройте в браузере файл:
file-tree-explorer-with-graph.html
Агент должен быть запущен — в шапке появится статус «Агент активен».
Скопируйте пример и положите pathtree-agent.json рядом с бинарником:
{
"bind": "127.0.0.1",
"port": "47842",
"root": "\\\\SERVER\\Share\\Projects"
}| Параметр | Описание |
|---|---|
bind |
Адрес привязки (по умолчанию 127.0.0.1) |
port |
Порт HTTP-сервера (по умолчанию 47842) |
root |
Корневая папка; пустое значение — запрос при старте |
# Флаг
./pathtree-agent-darwin-arm64 -root /Volumes/Share/Projects
# Переменная окружения
PATHTREE_ROOT=/Volumes/Share/Projects ./pathtree-agent-darwin-arm64
# Принудительно выбрать папку заново
./pathtree-agent-darwin-arm64 -pick
# Без диалога — root обязателен в конфиге
./pathtree-agent-darwin-arm64 -no-pick -root /path/to/shareВыбранный root сохраняется в pathtree-agent.json автоматически.
Все эндпоинты — GET, только localhost.
| Эндпоинт | Описание |
|---|---|
GET /ping |
Проверка доступности, платформа, root |
GET /scan?path=...&depth=8 |
Дерево папок (макс. depth 10) |
GET /open?path=... |
Открыть в Проводнике / Finder / xdg-open |
GET /share?path=... |
Путь и ссылка в формате текущей ОС |
Пример:
curl http://127.0.0.1:47842/ping
curl "http://127.0.0.1:47842/scan?path=/Users/me/Projects&depth=3"- Клик по папке — раскрыть уровень и перейти вправо; путь вверху обновляется
- ← на полоске следующего уровня — шаг назад
- Backspace / Escape — шаг назад
- Хлебные крошки под заголовком графа — быстрый переход
- ⌖ Вписать — вместить весь граф в экран
- Поделиться — работает с текущей папкой, как в режиме дерева
Кнопка «Поделиться» запрашивает у агента GET /share и возвращает:
- Нативный путь —
\\SERVER\Share\...(Windows) или/Volumes/...(macOS/Linux) - Ссылку VEAPathTree —
pathtree://?path=...(клик открывает папку в проводнике)
Браузер не открывает \\server\... напрямую из Google Sheets. Используйте протокол pathtree://:
- Установите агент и импортируйте
pathtree-protocol.reg(или разверните через GPO) - Включите автозапуск агента при входе в Windows
- UNC-путь храните в ячейке (например
B2), рядом — формула:
=IF(B2=""; ""; HYPERLINK("pathtree://?path=" & ENCODEURL(B2); "📂 Открыть"))
Клик откроет папку в Проводнике. Путь кодируется автоматически — копировать вручную не нужно.
На Windows агент сам регистрирует pathtree:// при первом запуске (в HKCU\Software\Classes, без прав администратора) и добавляет себя в автозагрузку текущего пользователя. Повторные запуски проверяют, что путь к exe не изменился.
Файл pathtree-protocol.reg не обязателен — это ручной вариант для HKCR (на всех пользователей ПК, нужен админ) или если автoregистрация отключена.
Отключить автoregистрацию:
pathtree-agent.exe -no-register-protocol
pathtree-agent.exe -no-autostartРучная установка через .reg (опционально):
- Соберите агент и положите в
C:\PathTree\ - Импортируйте
pathtree-protocol.reg(отредактируйте пути при необходимости) - Ссылки вида
pathtree://?path=\\SERVER\Папкаоткроют папку в Проводнике
VEAFileTree/
├── file-tree-explorer-with-graph.html # UI (дерево + граф)
├── build-agents.sh # Сборка под все ОС (macOS/Linux)
├── build-agent-windows.bat # Сборка на Windows
├── dist/ # Готовые бинарники
├── agent/ # Исходники Go-агента
│ ├── main.go
│ ├── config.go
│ ├── paths.go
│ ├── share.go
│ ├── open_windows.go / open_darwin.go / open_linux.go
│ ├── pick_root_*.go
│ └── pathtree-agent.json.example
└── pathtree-protocol.reg # Регистрация протокола (Windows)
Требуется Go 1.21+.
cd agent
go build -o ../dist/pathtree-agent-darwin-arm64 .Или все платформы сразу:
./build-agents.sh- Агент слушает только
127.0.0.1 - Только GET-запросы, без записи на диск
- При заданном
root— доступ только внутри этой папки - Запрещён path traversal (
..)
Делайте что хотите с этой поделкой. Я вообще не понимаю зачем я это сделал. Просто изобрёл велосипед очередной. Лучше пользуйтесь Total Commander.