Contact us
Leave a message

Move and Preserve Links!

Ich bin ein großer Fan von Symlinks! In meinem Home-Verzeichnis benutze ich sie gerne, um Informationen über verschiedene Pfade zugänglich zu machen -- z. B. Ordner mit Fotos, auf die ich dann nach Jahr, Ort oder Kategorie zugreifen kann. So weit, so gut -- problematisch wird's, wenn ich anfange, Dateien/Order zu verschieben oder umzubenennen, so dass alle darauf verweisende symbolische Links plötzlich ins Leere zeigen.

Um dem Problem beizukommen, habe ich mvpl geschrieben -- eine Art Dateimanager, der versucht, symbolische Links beim Verschieben oder Umbenennen von Dateien oder Verzeichnissen aktuell zu halten. Implementiert in FreePascal/Lazarus; vielleicht re-implementiere ich das irgendwann zum Spaß noch in anderen Sprachen (z. B. in GAMBAS).

Derzeit ist das Tool aufgrund system-spezifischer Aufrufe von Funktionen für die Arbeit mit Symlinks und dem Papierkorb nur Linux-tauglich, aber eine Erweiterung auf andere Betriebssysteme sollte grundsätzlich möglich sein -- so lange diese Symlinks und einen Desktop-Papierkorb unterstützen. Weiterhin ist es derzeit nicht möglich, Dateien/Verzeichnisse über Dateisystem-Grenzen hinweg zu verschieben. Das sollte aber nicht so schwierig zu implementieren sein, da es im Code bereits rekursive Funktionen zum Kopieren und Löschen gibt.

Features

Allgemeines

  • Typisches Datei-Manager-Layout mit einem Verzeichnisbaum links und einer Liste des Verzeichnisinhalts rechts
  • Rückgängig/Wiederholen-Funktion

Navigation

  • Zurück/Vorwärts
  • Eine Ebene höher
  • Link-Ziel öffnen

Datei-Operationen

  • Umbenennen
  • In den Papierkorb verschieben (gio muss installiert und im PATH sein)
  • Dauerhaft löschen (nicht rückgängigmachbar!)
  • Verzeichnis erstellen

Drag'n'drop eines Objekts aus der Verzeichnisinhaltsliste auf ein Verzeichnis in einem beliebigen der beiden Panels

  • Hierhin verschieben
  • Hierhin kopieren (rekursiv)
  • Relativen Symlink erstellen
  • Absoluten Symlink erstellen

Build

  • Repository von GitLab klonen
  • Lazarus (4.0 oder neuer) starten
  • Die mvpl.lpr-Datei im pascal-Unterverzeichnis öffnen
  • Build-Modus auswählen (debug|release)
  • Zum Debuggen das ./mktestroot-Skript im Wurzelverzeichnis des Projekts aufrufen, um den Test-Verzeichnisbaum zu erstellen, der im Debug-Modus vorausgewählt ist
  • Den "Run"-Button klicken; nach erfolgreicher Kompilierung findet sich das mvpl-Executable im pascal-Unterverzeichnis