Kategorien statt Verzeichnisse. Ein Tool zur bequemen Speicherung von Dateien

Inspiriert vom Artikel


"Kategorien statt Verzeichnisse oder das semantische Dateisystem für Linux Vitis",

Ich habe beschlossen, mein eigenes Analogon zum vitis Dienstprogramm für PowerShell Core zu erstellen.


Warum habe ich damit angefangen?


Erstens ist vitis für Linux.
Zweitens möchte ich die "Pipes" in PowerShell verwenden.


Da ich ein plattformübergreifendes Dienstprogramm erstellen wollte, entschied ich mich für .Net Core.


Hintergrund


Zuerst herrschte Chaos. Dann erschienen Ordner auf der Festplatte.
Aber es herrschte immer noch Chaos. Und es erschienen Tags sowie Untertags und Synonyme für Tags. Aber das Chaos hat sie auch gefangen genommen. Und Kategorien wurden erfunden.


Konzept


Dateien werden nicht in einer Ordnerhierarchie, sondern in einem Heap mit bestimmten Kategorien gespeichert. Eine einzelne Datei kann mehreren Kategorien angehören.


Wenn Sie eine Datei suchen müssen, ist es bequemer, die Kategorien einzugeben, zu denen sie gehört. Es ist viel einfacher, sich zu erinnern, als in welchen Ordnern es gespeichert ist.


Ein solches Dateisystem ist jedoch keineswegs zum Speichern von Code, Quellcodes usw. geeignet.
Es dient zum Speichern von beispielsweise Familienfotos, Musik und Dokumenten.


Verwenden Sie


Beginnen wir mit der Demonstration.


Installieren Sie Graphile:


 # install.ps1       PS D:\Source\repos\Graphile> .\install.ps1 

Initialisieren Sie zunächst Graphile im Ordner:


 #    PS C:\Users\Dell\GraphileTest> Import-Module GraphilePowerShell #  Graphile   PS C:\Users\Dell\GraphileTest> Init-Graphile C:\Users\Dell\GraphileTest\graphile.db 

Also sind wir alle eingerichtet. Jetzt können Sie eine neue Kategorie erstellen:


 PS C:\Users\Dell\GraphileTest> New-Category -Name "music" music 

Fügen Sie die Dateien hinzu:


 PS C:\Users\Dell\GraphileTest> Get-ChildItem "D:\Music\Pink Floyd - The Wall" -Recurse -Filter "*.mp3" | foreach { $_.FullName } | foreach { >> Add-FileToCategory -File $_ -Categories "music" >> } 

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


  1. Ich habe eine Liste der Dateien im Ordner Pink Floyd - The Wall
  2. Jede Datei wurde in einen vollständigen Pfad zu ihnen konvertiert
  3. Jede Datei wurde zur Musikkategorie hinzugefügt

Überprüfen Sie nun, ob wir die Dateien wirklich zur Kategorie hinzugefügt haben:


 PS C:\Users\Dell\GraphileTest> List-Graphiles | Format-Table 

Eine Liste wird im folgenden Format angezeigt:


 CategoriesNames Id Categories Name Extension 

Weitere Kategorien und Dateien hinzufügen:


 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:\Music\The Alan Parsons Project - Turn of a Friendly Card" -File -Recurse | foreach { $_.FullName } | foreach { Add-FileToCategory -File $_ -Categories "music", "alan-parsons" } 

Überprüfen Sie die Dateien:


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

Der Befehl listet alle Dateien auf, die zur alan-parsons .


Weitere Dateien zu God-Dateisystemen!


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

Wir prüfen:


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

Alles arbeitet!


Dies ist jedoch nur der Anfang. Exportieren Sie Ihr reguläres Dateisystem nach Graphile und erhalten Sie eine hervorragende Dateiorganisation.


Wo kann man Graphile herunterladen?


Hier ist ein Link zum GitLab Graphile.


MIT , sodass Sie sie auch für kommerzielle Zwecke verwenden können.


Zukünftiges Projekt


Da dies PowerShell und nicht Khukh-Mukhra ist, können Sie unter .NET Core eine grafische Shell erstellen.


Wie kann man das machen:


  1. Installieren Sie Microsoft.PowerShell.SDK
  2. Verwenden Sie die PowerShell-Klasse und rufen Sie Graphile auf.

Wenn Ihnen das Projekt gefallen hat, machen Sie Commits, führen Sie merge request zusammen und erstellen Sie Diskussionen.


Danke fürs Lesen! Nutzen und genießen!

Source: https://habr.com/ru/post/de467701/


All Articles