Categorie invece di directory. Strumento per una facile archiviazione dei file

Ispirato da articolo

«Categorie invece di directory, o un sistema di file semantico per Linux Vitis»,

ho deciso di creare la mia analogia dello strumento vitis per PowerShell Core.

Perché ho iniziato a farlo

Prima di tutto, vitis solo per Linux.
In secondo luogo, voglio usare le «pipe» in PowerShell.

Poiché volevo realizzare uno strumento multipiattaforma, ho scelto .Net Core.

Contesto

All'inizio c'era il caos. Poi sono comparse delle cartelle sul disco.
Ma il caos regnava ancora. Sono emerse etichette, così come sottotag e sinonimi delle etichette. Ma il caos ha preso anche loro. E sono state inventate le categorie.

Concetto

I file non sono memorizzati in una gerarchia di cartelle, ma in un «mucchio», con determinate categorie. Un file può appartenere a più categorie.

Se hai bisogno di trovare un file, è più comodo inserire le categorie a cui appartiene. È molto più facile da ricordare rispetto a quali cartelle lo ospitano.

Ma un tale sistema di file non è affatto adatto per memorizzare codice, sorgenti, ecc.
È destinato a memorizzare, ad esempio, foto di famiglia, musica, documenti.

L'utilizzo di

Bene, cominciamo con la dimostrazione.

Installa Graphile:

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

Innanzitutto inizializziamo Graphile nella cartella:

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

Quindi, abbiamo tutto impostato. Ora possiamo creare una nuova categoria:

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

Aggiungiamo i file:

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

Per chi non ha capito cosa ho fatto:

  1. Ho ottenuto l'elenco dei file nella cartella Pink Floyd - The Wall
  2. Ogni file è stato convertito nel percorso completo
  3. Ho aggiunto ogni file alla categoria music

Adesso verifichiamo se abbiamo effettivamente aggiunto i file alla categoria:

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

Verrà restituito un elenco nel formato:

CategoriesNames Id Categories Name Extension

Aggiungiamo altre categorie e file:

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

Verifichiamo i file:

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

Il comando restituirà tutti i file appartenenti alla categoria alan-parsons.

Più file al dio dei file system!

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

Controllando:

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

Tutto funziona!

Ma questo è solo l'inizio. Esporta il tuo file system tradizionale in Graphile e ottieni una straordinaria organizzazione dei file.

Dove scaricare Graphile

Ecco link da GitLab di Graphile.

Licenza MIT, quindi puoi usarlo anche per scopi commerciali.

Il futuro del progetto

Dal momento che si tratta di PowerShell, e non di un giocattolo, è possibile creare un'interfaccia grafica per .NET Core.

Come fare:

  1. Installare il pacchetto Microsoft.PowerShell.SDK
  2. Utilizzare la classe PowerShell e chiamare Graphile.

Se ti è piaciuto il progetto, fai commit, richiesta di mergee inizia discussioni.

Grazie per aver letto! Usufruiscine e divertiti!

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster