Categorías en lugar de directorios. Una herramienta para el almacenamiento conveniente de archivos

Inspirado en el articulo


"Categorías en lugar de directorios, o el sistema de archivos semántico para Linux Vitis",

Decidí hacer mi propio análogo de la utilidad vitis para PowerShell Core.


¿Por qué comencé a hacer esto?


Primero, vitis solo para Linux.
En segundo lugar, quiero usar las "tuberías" en PowerShell.


Como quería hacer una utilidad multiplataforma, elegí .Net Core.


Antecedentes


Al principio hubo caos. Entonces las carpetas aparecieron en el disco.
Pero el caos aún reinaba. Y aparecieron etiquetas, así como subetiquetas y sinónimos de etiquetas. Pero el caos también los capturó. Y se inventaron las categorías.


Concepto


Los archivos no se almacenan en una jerarquía de carpetas, sino en un montón, con ciertas categorías. Un solo archivo puede pertenecer a varias categorías.


Si necesita encontrar un archivo, es más conveniente ingresar las categorías a las que pertenece. Es mucho más fácil de recordar que en qué carpetas está almacenado.


Pero dicho sistema de archivos no es de ninguna manera adecuado para almacenar código, códigos fuente, etc.
Está diseñado para almacenar, por ejemplo, fotos familiares, música, documentos.


Uso


Bueno, comencemos la demostración.


Instalar Graphile:


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

Primero, inicialice Graphile en la carpeta:


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

Entonces, estamos todos preparados. Ahora puedes crear una nueva categoría:


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

Agrega los archivos:


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

Para aquellos que no entendieron lo que hice:


  1. Tengo una lista de archivos en la carpeta de Pink Floyd - The Wall
  2. Cada archivo convertido en una ruta completa a ellos
  3. Se agregó cada archivo a la categoría de music

Ahora verifique si realmente agregamos los archivos a la categoría:


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

Se mostrará una lista en el formato:


 CategoriesNames Id Categories Name Extension 

Agregue más categorías y archivos:


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

Revisa los archivos:


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

El comando enumerará todos los archivos que pertenecen a la alan-parsons .


Más archivos a los sistemas de archivos de Dios!


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

Comprobamos:


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

¡Todo funciona!


Pero esto es solo el comienzo. Exporte su sistema de archivos regular a Graphile y obtenga una excelente organización de archivos.


Dónde descargar Graphile


Aquí hay un enlace al GitLab Graphile.


MIT , para que pueda usarla incluso con fines comerciales.


Proyecto futuro


Como se trata de PowerShell, no de khukh-mukhra, puede crear un shell gráfico en .NET Core.


Cómo hacerlo:


  1. Instalar Microsoft.PowerShell.SDK
  2. Use la clase PowerShell y llame a Graphile.

Si le gustó el proyecto, haga commits, merge request y cree discusiones.


Gracias por leer! ¡Usa y disfruta!

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


All Articles