Kategooriad failihoidlate asemel. Tööriist mugavaks failide salvestamiseks

Inspireerituna artikkel

«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.ps1

Esiteks sätitakse Graphile kausta:

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

Nii et kõik on seadistatud. 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. Sain failide nimekirja kaustast Pink Floyd - The Wall
  2. Tõlkisin iga faili täispuhkuse
  3. Lisasin iga faili kategooriasse music

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

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

Väljund on järgmine formaat:

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 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-Table

Kõ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 link 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:

  1. Installige paket Microsoft.PowerShell.SDK
  2. 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

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster