Kategooriad kaustade asemel. Tööriist mugavaks failide säilitamiseks

Inspiratsiooniks artikkel

«Kategooriad asemel kaustad, või Semantiline failisüsteem Linux Vitis jaoks»

otsustasin teha oma analooge utiliidile vitis PowerShell Core'ile.

Miks ma seda tegema hakkasin

Esiteks, vitis ainult Linuxile.
Teiseks, tahan kasutada «torusid» PowerShellis.

Kuna soovisin luua mitme platvormiga utiliidi, valisin .Net Core'i.

Eelalugu

Alguses oli segadus. Siis ilmusid kettale kaustad.
Kuid segadus valitses endiselt. Ja ilmusid sildid, samuti alam-sildid ja sildide sünonüümid. Aga segadus haaras neidki. Ja välja mõeldi kategooriad.

Kontseptsioon

Failid ei ole salvestatud kaustade hierarhiasse, vaid «kühvlisse», kindlate kategooriatega. Üks fail võib kuuluda mitmesse kategooriasse.

Kui fail tuleb leida, on mugavam sisestada kategooriaid, millele see kuulub. See on palju lihtsam meeles pidada kui see, millistes kaustades see asub.

Kuid selline failisüsteem ei sobi mingil juhul koodi, allikate jms säilitamiseks.
See on mõeldud näiteks perede fotode, muusika, dokumentide hoidmiseks.

Kasutamine

Noh, alustame demonstreerimist.

Installime Graphile:

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

Esiteks seadistame Graphile kaustas:

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

Nii oleme kõik seadistanud. Nüüd saab luua uue kategooria:

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

Lisame failid:

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

Neile, kes ei saanud aru, mida ma tegin:

  1. Sai nimekiri failidest kaustas Pink Floyd - The Wall
  2. Iga faili muundasin täielikuks teeks
  3. Lisasin iga faili kategooriasse music

Nüüd kontrollime, kas tõesti lisasime failid kategooriasse:

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

Väljastatakse nimekiri vormingus:

CategoriesNames Id Categories Name Extension

Lisame veel kategooriaid ja faile:

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

Kontrollime faile:

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

Käsk väljastab kõik failid, mis kuuluvad kategooriasse alan-parsons.

Rohkem faile failisüsteemide jumalale!

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

Kontrollin:

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

Kõik töötab!

Aga see on alles algus. Ekspordi oma tavaline failisüsteem Graphile ja naudi suurepärast failihaldust.

Kust saab Graphile alla laadida

Siin on link Graphile GitLab’ist.

Litsents MIT, seega võid seda kasutada ka ärilistel eesmärkidel.

Projekti tulevik

Kuna see on PowerShell, mitte lihtsalt nipet-näpet, on võimalik luua graafiline liides .NET Core jaoks.

Kuidas seda teha:

  1. Installi Microsoft.PowerShell.SDK pakett
  2. Kasutage PowerShelli klassi ja kutsuge välja Graphile.

Kui projekt meeldis, tehke commit'e, merge requeste ja looge arutelusid.

Aitäh, et lugesite! Kasutage ja nautige!

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster