Categorii în loc de directoare. Un instrument pentru stocarea convenabilă a fișierelor.

Inspirați de articol

«Categorii în loc de directoare, sau Un sistem semantic de fișiere pentru Linux Vitis»

am decis să fac un analog al utilitarului vitis pentru PowerShell Core.

De ce am început să fac asta

În primul rând, vitis doar pentru Linux.
În al doilea rând, vreau să folosesc «tube» în PowerShell.

Pentru că am vrut să fac un utilitar multiplatformă, am ales .Net Core.

Povestea

Mai întâi a fost haos. Apoi au apărut folderele pe disc.
Dar haosul a domnit încă. Și au apărut etichete, precum și subetichete și sinonime pentru etichete. Dar haosul le-a cuprins și pe ele. Și au fost inventate categorii.

Conceptul

Fișierele sunt păstrate nu într-o ierarhie de foldere, ci într-un «morman», cu anumite categorii. Un fișier poate aparține mai multor categorii.

Dacă trebuie să găsești un fișier, este mai convenabil să introduci categoriile de care aparține. Este mult mai ușor de memorat decât în ce foldere este păstrat.

Dar un astfel de sistem de fișiere nu se potrivește în niciun caz pentru păstrarea codului, a surselor etc.
Este destinat pentru stocarea, de exemplu, a fotografiilor de familie, muzicii, documentelor.

Utilizare

Ei bine, să începem demonstrația.

Să instalăm Graphile:

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

Mai întâi, inițializăm Graphile în folder:

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

Așadar, am totul configurat. Acum putem crea o nouă categorie:

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

Să adăugăm fișiere:

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

Pentru cei care nu au înțeles ce am făcut:

  1. Am obținut o listă cu fișiere în folderul Pink Floyd - The Wall
  2. Fiecare fișier a fost transformat în calea completă către ele
  3. Am adăugat fiecare fișier în categorie music

Acum să verificăm dacă am adăugat cu adevărat fișierele în categorie:

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

Se va afișa o listă în format:

CategoriesNames Id Categories Name Extension

Să adăugăm mai multe categorii și fișiere:

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" }

Să verificăm fișierele:

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

Comanda va afișa toate fișierele care aparțin categoriei alan-parsons.

Mai multe fișiere pentru dumneavoastră, divinitatea sistemelor de fișiere!

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

Verificăm:

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

Totul funcționează!

Dar acesta este doar începutul. Exportați sistemul dumneavoastră de fișiere obișnuit în Graphile și obțineți o organizare excelentă a fișierelor.

De unde să descărcați Graphile

Iată linkul de pe GitLab Graphile.

Licență MIT, așa că o puteți folosi chiar și în scopuri comerciale.

Viitorul proiectului

Deoarece este PowerShell și nu o glumă, puteți crea o interfață grafică pe .NET Core.

Cum să faceți asta:

  1. Instalați pachetul Microsoft.PowerShell.SDK
  2. Folositi clasa PowerShell și apelați Graphile.

Dacă v-a plăcut proiectul, faceți comit-uri, cerere de îmbinareși creați discuții.

Vă mulțumim pentru lectură! Folosiți și bucurați-vă!

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster