Inspireerituna
«Kategooriad asemel kaustad, või Semantiline failisüsteem Linux Vitis»
otsustasin luua oma analooge tööriistast vitis PowerShell Core'i jaoks.
Miks ma seda tegema hakkasin
Esiteks, vitis ainult Linuxi jaoks.
Teiseks, soovin kasutada ‘torusid’ PowerShellis.
Kuna soovisin luua platvormideülese tööriista, valisin .Net Core'i.
Eellugu
Alguses valitses kaos. Siis ilmusid kettale kaustad.
Aga kaos valitses endiselt. Ja ilmusid sildid, samuti alamkategooriad ja sildide sünonüümid. Aga kaos vallutas ka need. Ja kätkide ideaalis olid kategooriad.
Kontseptsioon
Failid ei ole salvestatud kaustade hierarhiasse, vaid ‘unnikusse’, millel on teatud kategooriad. Üks fail võib kuuluda mitmesse kategooriasse.
Kui vaja leida faili, on mugavam sisestada kategooriad, mille alla see kuulub. See on palju lihtsam meeles pidada, kui millistes kaustades see asub.
Aga selline failisüsteem ei sobi mingil juhul koodi, lähtefailide jms säilitamiseks.
See on mõeldud näiteks pereteenuste, muusika, dokumentide hoidmiseks.
Kasutamine
Kuid alustame demo tegemist.
Installeerime Graphile:
# install.ps1 находится в корневой папке с кодом
PS D:SourcereposGraphile> .install.ps1Esiteks sätitakse Graphile kausta:
# Импортируем установленный модуль
PS C:UsersDellGraphileTest> Import-Module GraphilePowerShell
# Инициализируем Graphile в папке
PS C:UsersDellGraphileTest> Init-Graphile
C:UsersDellGraphileTestgraphile.dbNii et kõik on seadistatud. 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:
- Sain failide nimekirja kaustast
Pink Floyd - The Wall - Tõlkisin iga faili täispuhkuse
- Lisasin iga faili kategooriasse
music
Nüüd kontrollime, kas tõepoolest lisasime failid kategooriasse:
PS C:UsersDellGraphileTest> List-Graphiles | Format-TableVäljund on järgmine formaat:
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 kuvab 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"
}Kontrollime:
List-Graphiles -Categories "images" | Format-TableKõik töötab!
Aga see on alles algus. Ekspordi oma tavapärane failisüsteem Graphile ja saad suurepärase failide korralduse.
Kust saab Graphile'i alla laadida
Siin GitLab Graphile'ist.
Litsents MIT, nii et saate seda kasutada isegi ärilistel eesmärkidel.
Projekti tulevik
Kuna see on PowerShell, mitte mingid nurgaraha, saab .NET Core jaoks luua graafilise liidese.
Kuidas seda teha:
- Installige paket Microsoft.PowerShell.SDK
- Kasutage PowerShelli klassi ja kutsuge Graphile'i välja.
Kui projekt teile meeldib, tehke commit'e, merge requestja looge arutelusid.
Aitäh, et lugesite! Kasutage ja nautige!
Allikas: habr.com
