Kategorien statt Verzeichnissen. Ein Werkzeug zur komfortablen Dateispeicherung.

Inspiriert von Artikel.

„Kategorien statt Verzeichnissen, oder ein semantisches Dateisystem für Linux Vitis“

entschloss ich mich, ein Äquivalent des Tools vitis für PowerShell Core zu entwickeln.

Warum ich damit angefangen habe

Erstens, vitis nur für Linux.
Zweitens möchte ich in PowerShell mit „Pipes“ arbeiten.

Da ich ein plattformübergreifendes Tool erstellen wollte, wählte ich .Net Core.

Hintergrund

Zu Beginn herrschte Chaos. Dann erschienen Ordner auf der Festplatte.
Aber das Chaos blieb bestehen. Es wurden Tags, Untertags und Synonyme für Tags eingeführt. Doch das Chaos überkam auch sie. Und dann wurden Kategorien erfunden.

Die Idee

Dateien werden nicht in einer hierarchischen Ordnerstruktur gespeichert, sondern in einem „Stapel“ mit bestimmten Kategorien. Eine Datei kann mehreren Kategorien angehören.

Wenn man eine Datei finden muss, ist es einfacher, die Kategorien einzugeben, zu denen sie gehört. Das lässt sich viel leichter merken als die Ordner, in denen sie gespeichert ist.

Ein solches Dateisystem ist jedoch keineswegs für die Speicherung von Code, Quellcodes usw. geeignet.
Es ist gedacht für die Speicherung von beispielsweise Familienfotos, Musik und Dokumenten.

Nutzung

Nun, lassen Sie uns mit der Demonstration beginnen.

Wir installieren Graphile:

# install.ps1 находится в корневой папке с кодом
PS D:SourcereposGraphile> .install.ps1

Zuerst initialisieren wir Graphile im Ordner:

# Импортируем установленный модуль
PS C:UsersDellGraphileTest> Import-Module GraphilePowerShell
# Инициализируем Graphile в папке
PS C:UsersDellGraphileTest> Init-Graphile
C:UsersDellGraphileTestgraphile.db

So, wir haben alles eingerichtet. Jetzt können wir eine neue Kategorie erstellen:

PS C:UsersDellGraphileTest> New-Category -Name "music"
music

Fügen wir Dateien hinzu:

PS C:UsersDellGraphileTest> Get-ChildItem "D:MusicPink Floyd - The Wall" -Recurse -Filter "*.mp3" | foreach { $_.FullName } | foreach {
>> Add-FileToCategory -File $_ -Categories "music"
}

Für diejenigen, die nicht verstanden haben, was ich gemacht habe:

  1. Ich habe die Liste der Dateien im Ordner erhalten Pink Floyd - The Wall
  2. Jede Datei wurde in ihren vollständigen Pfad umgewandelt
  3. Jede Datei wurde der Kategorie hinzugefügt music

Jetzt prüfen wir, ob wir tatsächlich die Dateien in die Kategorie hinzugefügt haben:

PS C:UsersDellGraphileTest> List-Graphiles | Format-Table

Es wird eine Liste im folgenden Format ausgegeben:

CategoriesNames Id Categories Name Extension

Fügen wir noch Kategorien und Dateien hinzu:

New-Category -Name "the-wall"
New-Category -Name "alan-parsons"

List-Graphiles -Categories "music" | foreach { Add-GraphileToCategory -Categories "the-wall" -Files $_.Name }

Get-ChildItem "D:MusicThe Alan Parsons Project - Turn of a Friendly Card" -File -Recurse | foreach { $_.FullName } | foreach { Add-FileToCategory -File $_ -Categories "music", "alan-parsons" }

Prüfen wir die Dateien:

List-Graphiles -Categories "alan-parsons" | Format-Table

Der Befehl gibt alle Dateien aus, die zur Kategorie gehören alan-parsons.

Mehr Dateien dem Gott der Dateisysteme!

New-Category -Name "images"
Get-ChildItem "D:Images" -File -Recurse | foreach { $_.FullName } | foreach {
    Add-FileToCategory -File $_ -Categories "images"
}

Überprüfen wir:

List-Graphiles -Categories "images" | Format-Table

Alles funktioniert!

Doch das ist erst der Anfang. Exportieren Sie Ihr herkömmliches Dateisystem nach Graphile und erleben Sie eine hervorragende Dateiorganisation.

Wo Sie Graphile herunterladen können

Hier Link auf GitLab von Graphile.

Lizenz MIT, sodass Sie es sogar für kommerzielle Zwecke nutzen können.

Die Zukunft des Projekts

Da es sich um PowerShell handelt und nicht um irgendwelche Spielereien, kann eine grafische Oberfläche unter .NET Core erstellt werden.

So machen Sie es:

  1. Paket Microsoft.PowerShell.SDK installieren
  2. Die PowerShell-Klasse verwenden und Graphile aufrufen.

Wenn Ihnen das Projekt gefällt, machen Sie Commits, Merge Requestsund erstellen Sie Diskussionen.

Danke fürs Lesen! Nutzen Sie es und haben Sie Spaß!

Quelle: habr.com

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster