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

Ispirato da l'articolo

«Categorie invece di directory, o 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

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

Poiché ho voluto creare uno strumento multipiattaforma, ho scelto .Net Core.

Antefatti

All'inizio regnava il caos. Poi sono apparse le cartelle sul disco.
Ma il caos era ancora presente. E sono emersi tag, così come sottotag e sinonimi di tag. Ma il caos ha acchiappato anche loro. E sono state inventate categorie.

Concetto

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

Se è necessario trovare un file, è più facile inserire le categorie a cui appartiene. È molto più semplice da ricordare rispetto alle cartelle in cui è memorizzato.

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

Utilizzo

Bene, cominciamo con la dimostrazione.

Installiamo Graphile:

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

Iniziamo a inizializzare Graphile nella cartella:

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

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

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

Aggiungiamo 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 ad essi
  3. Ho aggiunto ogni file nella categoria music

Ora verifichiamo se abbiamo veramente 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" }

Controlliamo i file:

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

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

Più file al dio dei sistemi di file!

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

Controlliamo:

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

Funziona tutto!

Ma questo è solo l'inizio. Esporta il tuo normale sistema di file in Graphile e ottieni un'ottima organizzazione dei file.

Dove scaricare Graphile

Ecco link su GitLab di Graphile.

Licenza MIT, quindi puoi utilizzarlo anche per scopi commerciali.

Futuro del progetto

Essendo PowerShell e non un giocattolo, è possibile creare un'interfaccia grafica su .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, merge requeste crea discussioni.

Grazie per aver letto! Usalo e goditi!

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