类别而不是目录。 方便文件存储的工具

受到文章的启发


“类别而不是目录,或Linux Vitis的语义文件系统”,

我决定对PowerShell Core的vitis实用程序进行自己的模拟。


为什么我开始这样做?


首先, vitis适用于Linux。
其次,我想在PowerShell中使用“管道”。


由于我想制作一个跨平台的实用程序,因此选择了.Net Core。


背景知识


起初有混乱。 然后,文件夹出现在磁盘上。
但是混乱仍然占据统治地位。 出现标签,以及标签的子标签和同义词。 但是混乱也抓住了他们。 并且发明了类别。


概念图


文件不是存储在文件夹层次结构中,而是存储在具有某些类别的堆中。 单个文件可以属于几个类别。


如果需要查找文件,则输入文件所属的类别更为方便。 与将其存储在哪个文件夹相比,记住起来要容易得多。


但是这样的文件系统绝不适合存储代码,源代码等。
它旨在存储例如家庭照片,音乐,文档。


使用方法


好,让我们开始演示。


安装Graphile:


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

首先,在文件夹中初始化Graphile:


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

因此,我们都准备就绪。 现在,您可以创建一个新类别:


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

添加文件:


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

对于那些不了解我所做的事情的人:


  1. Pink Floyd - The Wall文件夹中找到了文件列表Pink Floyd - The Wall
  2. 每个文件都转换为它们的完整路径
  3. 将每个文件添加到music类别

现在检查我们是否确实将文件添加到了类别:


 PS C:\Users\Dell\GraphileTest> 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:\Music\The 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,而不是khukh-mukhra,因此您可以在.NET Core下创建图形外壳。


怎么做:


  1. 安装Microsoft.PowerShell.SDK
  2. 使用PowerShell类并调用Graphile。

如果您喜欢该项目,请提交, merge request并创建讨论。


感谢您的阅读! 使用和享受!

Source: https://habr.com/ru/post/zh-CN467701/


All Articles