y83 code / справочник

Файлы

Просмотр и правка файлов на телефоне и на удалённых серверах через один экран, с передачей файлов туда и обратно.

раздел
Подсистемы приложения
пунктов возможностей
23
источник
docs/about/files.md

Возможности

  • Просмотр папок и файлов на телефоне и на удалённых серверах — в одном и том же экране. Разница только в том, какой источник сейчас открыт.
  • Свои корни: можно добавить в список любую папку, а не только домашнюю.
  • Хлебные крошки — видно, где находишься, и в любую точку пути можно вернуться.
  • Показ скрытых файлов — тех, что начинаются с точки.
  • Поиск по подпапкам, а не только в текущей папке, с ограничением числа найденного.
  • Сортировка по имени, размеру, дате и типу файла (картинка, текст, код, разметка, медиа, архив).
  • Создание папок и файлов, переименование, удаление.
  • Выделение нескольких файлов сразу и массовые действия над ними: копировать, переместить, удалить, скачать на телефон или загрузить на сервер.
  • Размер папки целиком, с учётом всех вложенных файлов.
  • Свойства файла: размер, дата, тип, права доступа.
  • Передача файлов в обе стороны: загрузить с телефона на сервер или скачать обратно. Показывается прогресс, передачу можно отменить.
  • Просмотр картинок с увеличением и сдвигом, если снимок не помещается в экран.
  • Просмотр прямо в приложении: текст, код, разметка, картинки с увеличением. Медиа и архивы только опознаются по типу, но не открываются.
  • Открыть файл другим приложением, поделиться им или скопировать текст в буфер.
  • Ошибки показываются человеческими словами, а не кодом ошибки.

Технические данные

ПараметрЗначение
Источникителефон (Termux) и удалённые серверы по SSH
Свои корнидобавляются пользователем, запоминаются
Поискрекурсивный по подпапкам, с ограничением числа результатов
Загрузка на устройствопапка «Загрузки» телефона
Запись в общие папкичерез системный доступ к файлам
Защитазапись в системные пути блокируется
Позиция при повторном открытиизапоминается последняя папка

Как устроен доступ

Файловый менеджер не ходит в файлы напрямую. Все операции — прочитать папку, создать файл, удалить — он спрашивает у служебной программы, которая отвечает списком, содержимым файла или выполняет запись. Для файлов на телефоне и для файлов на удалённых серверах используются одни и те же команды, поэтому экран один и тот же, меняется только адрес, куда уходит запрос.

Из этого следует важное: путь на телефоне и такой же путь на удалённом сервере — это разные файлы, даже если написаны одинаково. Переключая источник, нужно понимать, где вы находитесь.

Передача файлов

Файлы ходят через сервер целиком, а не кусками с докачкой. У передачи есть прогресс и отмена, но если связь оборвалась, передачу нужно начинать заново — частично скачанный файл не восстанавливается. Размер папки целиком считается долго: сначала обход всех вложенных файлов, потом сложение.

Что агент умеет с файлами

Чтение и запись

  • Прочитать файл по пути — сразу, построчно или блоками. Можно указать, с какой строки начинать и сколько строк взять, чтобы не тянуть в чат файл целиком. Для больших файлов читается только нужный кусок.
  • Записать файл по пути — файл перезаписывается целиком и за один шаг: если запись оборвалась, старое содержимое остаётся целым.
  • Найти значение в JSON-файле — по пути внутрь файла, без чтения всего файла в чат. Достаточно указать файл и путь вида свойство.вложенное — вернётся значение.

Ограничения агента на запись

Агент пишет не куда угодно, а только в разрешённые рабочие папки проекта и во временную папку. Попытка записать в системный путь будет отклонена — это сделано намеренно, чтобы агент не мог испортить настройки телефона или саму программу.

Работа через экран

Кроме прямого чтения и записи, агент может открыть экран файлов и работать с ним как человек: навигация по папкам, выбор файлов, действия через элементы интерфейса. Это нужно, когда требуется то, чего нет в прямых командах: например, сортировка или выбор из списка корней.

Ограничения

  • Запись в общие папки телефона требует отдельно выданного доступа — на современных версиях Android приложение не получает его само.
  • При обрыве связи во время передачи файл придётся передавать заново.
  • Подсчёт размера большой папки занимает заметное время.
  • Один и тот же путь на телефоне и на сервере — разные файлы.
  • Файлы приходят на телефон в папку «Загрузки», а не в произвольное место.

Источник: docs/about/files.md. Страница собрана из документации проекта при сборке сайта — без пересказа.