Kategorier i stedet for mapper. Et værktøj til nem opbevaring af filer

Inspi­reret af en artikel

«Kategorier i stedet for mapper, eller Et semantisk filsystem for Linux Vitis»,

besluttede jeg at lave min egen analog af værktøjet vitis til PowerShell Core.

Hvorfor jeg begyndte at gøre dette

For det første, vitis kun for Linux.
For det andet, ønsker jeg at bruge «pipes» i PowerShell.

Da jeg ville lave et tværplatformsværktøj, valgte jeg .Net Core.

Background

Først var der kaos. Så dukkede der mapper op på disken.
Men kaos herskede stadig. Og tags, samt sub-tags og synonymer til tags dukkede op. Men kaos greb også dem. Og kategorier blev opfundet.

Koncept

Filer opbevares ikke i en mappestruktur, men i en «bunke» med bestemte kategorier. En fil kan tilhøre flere kategorier.

Hvis du skal finde en fil, er det lettere at indtaste de kategorier, den tilhører. Det er meget lettere at huske, end i hvilke mapper den er gemt.

Men et sådan filsystem er på ingen måde egnet til opbevaring af kode, kildekoder osv.
Det er beregnet til at gemme, for eksempel, familiebilleder, musik, dokumenter.

Brugen af

Nå, lad os begynde demonstrationen.

Lad os installere Graphile:

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

Først initialiserer vi Graphile i mappen:

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

Så, nu har vi sat alt op. Nu kan vi oprette en ny kategori:

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

Lad os tilføje filer:

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

Til dem, der ikke forstod, hvad jeg gjorde:

  1. Jeg fik en liste over filer i mappen Pink Floyd - The Wall
  2. Hver fil blev konverteret til sin fulde sti
  3. Tilføjede hver fil til kategorien music

Lad os nu se, om vi virkelig har tilføjet filer til kategorien:

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

Der vil blive vist en liste i formatet:

KategorierNavne ID Kategorier Navn Udvidelse

Lad os tilføje flere kategorier og filer:

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

Lad os tjekke filerne:

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

Kommandoen vil vise alle filer, der tilhører kategorien alan-parsons.

Flere filer til filgudernes ære!

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

Vi tjekker:

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

Alt fungerer!

Men det er kun begyndelsen. Eksportér dit almindelige filsystem til Graphile og få en fremragende organisering af filer.

Hvor kan jeg downloade Graphile

Her er link fra GitLab Graphile.

Licens MIT, så du kan endda bruge det til kommercielle formål.

Projektets fremtid

Da dette er PowerShell og ikke noget pjatt, kan man lave et grafisk interface i .NET Core.

Sådan gør du:

  1. Installer Microsoft.PowerShell.SDK-pakken
  2. Brug PowerShell-klassen og kald Graphile.

Hvis du kan lide projektet, så lav commits, merge requestog skab diskussioner.

Tak for læsningen! Brug det og nyd det!

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster