Категории вместо директории. Инструмент за удобно съхранение на файлове

Вдъхновен статия

„Категории вместо директории, или Семантична файловата система за Linux Vitis“

реших да направя своя аналог на утилитата vitis за PowerShell Core.

Защо започнах да го правя

На първо място, vitis само за Linux.
На второ място, искам да използвам „трубите“ в PowerShell.

Понеже исках да направя кросплатформена утилита, избрах .Net Core.

Предистория

Първоначално беше хаос. След това на диска се появиха папки.
Но хаосът все още царуваше. Появиха се тагове, както и подсекции и синоними на таговете. Но хаосът завладя и тях. И бяха измислени категории.

Концепция

Файловете не се съхраняват в йерархия от папки, а в „купчина“, с определени категории. Един файл може да принадлежи на няколко категории.

Ако трябва да намерите файл, по-удобно е да въведете категориите, на които принадлежи. Това е много по-лесно за запомняне, отколкото в кои папки се съхранява.

Но такава файлова система по никакъв начин не е подходяща за съхраняване на код, изходни файлове и т.н.
Тя е предназначена за съхранение, например, на семейни снимки, музика, документи.

Използването

Е, да започнем с демонстрацията.

Нека инсталираме Graphile:

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

Първо ще инициализираме Graphile в папката:

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

И така, всичко е настроено. Сега можем да създадем нова категория:

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

Добавяме файлове:

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

На тези, които не разбраха какво направих:

  1. Получих списък с файлове в папката Pink Floyd - The Wall
  2. Всеки файл преобразувах в пълния му път
  3. Добавих всеки файл в категорията music

Сега да проверим дали наистина сме добавили файловете в категорията:

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

Ще изведе списък в формат:

CategoriesNames Id Categories Name Extension

Ще добавим още категории и файлове:

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

Да проверим файловете:

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

Командата ще изведе всички файлове, които принадлежат на категорията alan-parsons.

Повече файлове на бога на файловите системи!

New-Category -Name "images"
Get-ChildItem "D:Изображения" -File -Recurse | foreach { $.FullName } | foreach {
    Add-FileToCategory -File $_ -Categories "images"
}

Проверяваме:

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

Всичко работи!

Но това е само началото. Експортирайте обичайната си файлова система в Graphile и получете отлична организация на файловете.

Откуда да се свали Graphile

Ето линк в GitLab на Graphile.

Лиценз MIT, така че може да се използва дори и за търговски цели.

Бъдещето на проекта

Тъй като това е PowerShell, а не какво да е, може да се направи графичен интерфейс под .NET Core.

Как да го направите:

  1. Инсталирайте пакета Microsoft.PowerShell.SDK
  2. Използвайте класа PowerShell и извикайте Graphile.

Ако ви харесва проектът, правете комити, merge requestи създавайте дискусии.

Благодаря за прочитането! Ползвайте и се насладете!

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster