Kategorie zamiast katalogów. Narzędzie do wygodnego przechowywania plików

Zainspirowany artykułem

„Kategorie zamiast katalogów, czyli semantyczny system plików dla Linux Vitis”

postanowiłem stworzyć swój odpowiednik narzędzia vitis dla PowerShell Core.

Dlaczego zacząłem to robić

Po pierwsze, vitis tylko dla Linuxa.
Po drugie, chcę korzystać z „rur” w PowerShell.

Ponieważ postanowiłem stworzyć wieloplatformowe narzędzie, wybrałem .Net Core.

Tło

Na początku panował chaos. Później na dysku pojawiły się foldery.
Ale chaos wciąż panował. Pojawiły się tagi, a także podtagi i synonimy tagów. Chaos zajął również je. Wymyślono kategorie.

Koncepcja

Pliki są przechowywane nie w hierarchii folderów, lecz w „stosem”, z określonymi kategoriami. Jeden plik może należeć do wielu kategorii.

Jeśli trzeba znaleźć plik, łatwiej wpisać kategorie, do których należy. To dużo łatwiejsze do zapamiętania, niż w jakich folderach jest przechowywany.

Jednak taki system plików w żadnym wypadku nie nadaje się do przechowywania kodu, źródeł itd.
Jest przeznaczony do przechowywania, na przykład, rodzinnych zdjęć, muzyki, dokumentów.

Użycie

No cóż, przejdźmy do demonstracji.

Zainstalujmy Graphile:

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

Najpierw inicjalizujemy Graphile w folderze:

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

Zatem wszystko skonfigurowaliśmy. Teraz możemy stworzyć nową kategorię:

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

Dodajmy pliki:

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

Dla tych, którzy nie zrozumieli, co zrobiłem:

  1. Uzyskałem listę plików w folderze Pink Floyd - The Wall
  2. Każdy plik przekształciłem w pełną ścieżkę do nich
  3. Dodałem każdy plik do kategorii music

Teraz sprawdźmy, czy rzeczywiście dodaliśmy pliki do kategorii:

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

Zostanie wyświetlona lista w formacie:

CategoriesNames Id Categories Name Extension

Dodajmy jeszcze kategorie i pliki:

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:MuzykaThe Alan Parsons Project - Turn of a Friendly Card" -File -Recurse | foreach { $_.FullName } | foreach { Add-FileToCategory -File $_ -Categories "music", "alan-parsons" }

Sprawdźmy pliki:

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

Polecenie wyświetli wszystkie pliki, które należą do kategorii alan-parsons.

Więcej plików dla boga systemów plików!

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

Sprawdzamy:

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

Wszystko działa!

Ale to dopiero początek. Wyeksportuj swoją zwykłą strukturę plików do Graphile i uzyskaj doskonałą organizację plików.

Skąd pobrać Graphile

Oto link na GitLab Graphile'a.

Licencja MIT, więc można go używać nawet w celach komercyjnych.

Przyszłość projektu

Ponieważ to PowerShell, a nie byle co, można stworzyć graficzny interfejs dla .NET Core.

Jak to zrobić:

  1. Zainstalować pakiet Microsoft.PowerShell.SDK
  2. Użyć klasy PowerShell i wywołać Graphile.

Jeśli podoba Ci się projekt, dokonaj commitów, merge requesti twórz dyskusje.

Dziękuję za przeczytanie! Korzystaj i ciesz się!

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster