feat(core): the file explorer, text editor and image viewer's file operations after Java, measured against Java

FileCases does what the windows of FILIUS' file explorer and text editor
do to a host's files: new folder, delete, copy, cut and paste, rename,
import, save and save as. The core's filePrograms.ts does the same on the
node's file system; the file system renames an entry in its place, as
Java's tree does.

Departures from Java: a folder name that comes to no name makes nothing,
a paste onto a name there already is refused, a rename to a name with a
slash or blanks at its ends is refused and one of the case only is done,
save as and import onto a folder's name are refused.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-02 11:59:11 +00:00
co-authored by Claude Opus 5.5
parent f622959ecc
commit 9d42b90157
13 changed files with 7653 additions and 3 deletions
+34
View File
@@ -870,6 +870,40 @@ Gemessen (02.10.2026):
ebenso eine unter Last (andere Sitzungen auf dem Rechner: die erste
ARP-Runde dauert dann knapp 300 statt 225 ms).
## Datei-Explorer, Texteditor, Bildbetrachter (F3.5b)
`FileCases` tut, was die Fenster dieser Programme mit den Dateien eines
Rechners tun (`GUIApplicationFileExplorerWindow`,
`GUIApplicationTextEditorWindow`; der Bildbetrachter liest nur), Schritt für
Schritt aus `file-programs.cases.txt`, ohne laufendes Netz, ab den Dateien
von `TerminalCases`, in beiden Sprachen. Geschrieben werden je Schritt die
Rückgabe (Meldung, Ausnahme) und alle Dateien, dazu die Meldungen des
Explorers.
Gemessen (02.10.2026):
* Neuer Ordner (`erstelleVerzeichnis`): der Name ist ein Pfad (`a/b` legt b
in a an, `/x` unter der Wurzel, `../x` darüber); ein vorhandener Name
ändert nichts; `..` an der Wurzel legt einen Ordner ohne Namen an.
* Einfügen: eine tiefe Kopie ans Ende des Ordners; ein zweites Einfügen
desselben Namens legt eine zweite Datei gleichen Namens an; nicht in das
Kopierte selbst oder darunter (`fileexplorer_msg19`); Ausschneiden und in
denselben Ordner einfügen schiebt den Eintrag ans Ende.
* Umbenennen: der Eintrag behält seine Stelle; ein leerer oder vorhandener
Name ändert nichts, auch eine reine Änderung der Groß-/Kleinschreibung
(Java findet den Eintrag selbst); `a/b` wird eine Datei mit `/` im Namen;
Leerzeichen am Rand bleiben.
* Import (`FileExplorer.addFile`): der Typ nach dem Namen der lokalen Datei
(`config/filetypes.txt`; ohne Endung Text, unbekannte Endung kein Typ);
Text Zeile für Zeile, jede mit CR LF (auch die letzte), UTF-8; anderes als
Base64; über 150 000 Byte abgelehnt; ohne Namen `noName`; auf einen
vorhandenen Namen Inhalt und Typ ersetzt, Schreibweise bleibt; auf einen
Ordnernamen eine Ausnahme.
* Texteditor: „Speichern“ ersetzt den Inhalt der offenen Datei, „Speichern
unter“ (`speicherDatei`) legt eine Datei vom Typ `text` an oder ersetzt
Inhalt und Typ einer gleichnamigen (auch eines Bildes); auf einen
Ordnernamen eine Ausnahme, in einem fehlenden Ordner nichts.
## Befehlszeile, traceroute und tcpdump (F3.4c)
Weitere Abläufe von `TerminalRun` auf `terminal-net`. Gemessen (02.10.2026):