Inspiratsiooniks
«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.ps1Esiteks seadistame Graphile kaustas:
# Импортируем установленный модуль
PS C:UsersDellGraphileTest> Import-Module GraphilePowerShell
# Инициализируем Graphile в папке
PS C:UsersDellGraphileTest> Init-Graphile
C:UsersDellGraphileTestgraphile.dbNii oleme kõik seadistanud. Nüüd saab luua uue kategooria:
PS C:UsersDellGraphileTest> New-Category -Name "music"
musicLisame 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:
- Sai nimekiri failidest kaustas
Pink Floyd - The Wall - Iga faili muundasin täielikuks teeks
- Lisasin iga faili kategooriasse
music
Nüüd kontrollime, kas tõesti lisasime failid kategooriasse:
PS C:UsersDellGraphileTest> List-Graphiles | Format-TableVäljastatakse nimekiri vormingus:
CategoriesNames Id Categories Name ExtensionLisame 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-TableKä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-TableKõ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 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:
- Installi Microsoft.PowerShell.SDK pakett
- 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
