Catégories au lieu de répertoires. Un outil pour un stockage de fichiers pratique

Inspiré par l' article


"Catégories au lieu de répertoires, ou le système de fichiers sémantique pour Linux Vitis",

J'ai décidé de créer mon propre analogue de l'utilitaire vitis pour PowerShell Core.


Pourquoi ai-je commencé à faire ça?


Tout d'abord, vitis uniquement pour Linux.
Deuxièmement, je veux utiliser les "tuyaux" dans PowerShell.


Comme je voulais créer un utilitaire multiplateforme, j'ai choisi .Net Core.


Contexte


Au début, il y avait le chaos. Ensuite, des dossiers sont apparus sur le disque.
Mais le chaos régnait toujours. Et des balises sont apparues, ainsi que des sous-balises et des synonymes de balises. Mais le chaos les a également capturés. Et les catégories ont été inventées.


Concept


Les fichiers ne sont pas stockés dans une hiérarchie de dossiers, mais dans un segment de mémoire, avec certaines catégories. Un même fichier peut appartenir à plusieurs catégories.


Si vous avez besoin de trouver un fichier, il est plus pratique d'entrer les catégories auxquelles il appartient. Il est beaucoup plus facile de se souvenir que dans quels dossiers il est stocké.


Mais un tel système de fichiers n'est en aucun cas adapté au stockage de code, de codes sources, etc.
Il est conçu pour stocker, par exemple, des photos de famille, de la musique, des documents.


Utiliser


Eh bien, commençons la démonstration.


Installez Graphile:


 # install.ps1       PS D:\Source\repos\Graphile> .\install.ps1 

Tout d'abord, initialisez Graphile dans le dossier:


 #    PS C:\Users\Dell\GraphileTest> Import-Module GraphilePowerShell #  Graphile   PS C:\Users\Dell\GraphileTest> Init-Graphile C:\Users\Dell\GraphileTest\graphile.db 

Donc, nous sommes tous installés. Vous pouvez maintenant créer une nouvelle catégorie:


 PS C:\Users\Dell\GraphileTest> New-Category -Name "music" music 

Ajoutez les fichiers:


 PS C:\Users\Dell\GraphileTest> Get-ChildItem "D:\Music\Pink Floyd - The Wall" -Recurse -Filter "*.mp3" | foreach { $_.FullName } | foreach { >> Add-FileToCategory -File $_ -Categories "music" >> } 

À ceux qui n'ont pas compris ce que j'ai fait:


  1. Vous avez une liste de fichiers dans le dossier Pink Floyd - The Wall
  2. Chaque fichier converti en un chemin complet vers eux
  3. Ajout de chaque fichier à la catégorie music

Vérifiez maintenant si nous avons vraiment ajouté les fichiers à la catégorie:


 PS C:\Users\Dell\GraphileTest> List-Graphiles | Format-Table 

Une liste sera affichée au format:


 CategoriesNames Id Categories Name Extension 

Ajoutez plus de catégories et de fichiers:


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

Vérifiez les fichiers:


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

La commande répertorie tous les fichiers appartenant à la alan-parsons .


Plus de fichiers vers les systèmes de fichiers god!


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

Nous vérifions:


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

Tout fonctionne!


Mais ce n'est que le début. Exportez votre système de fichiers standard vers Graphile et obtenez une excellente organisation des fichiers.


Où télécharger Graphile


Voici un lien vers le GitLab Graphile.


MIT , vous pouvez donc l'utiliser même à des fins commerciales.


Projet futur


Comme il s'agit de PowerShell, pas de khukh-mukhra, vous pouvez créer un shell graphique sous .NET Core.


Comment faire:


  1. Installez Microsoft.PowerShell.SDK
  2. Utilisez la classe PowerShell et appelez Graphile.

Si vous avez aimé le projet, faites des commits, merge request et créez des discussions.


Merci d'avoir lu! Utilisez et profitez!

Source: https://habr.com/ru/post/fr467701/


All Articles