فئات بدلا من الدلائل. أداة لتخزين الملفات مريحة

مستوحاة من المادة


"الفئات بدلاً من الدلائل ، أو نظام الملفات الدلالية لنظام Linux Vitis" ،

قررت أن أصنع vitis الخاصة للأداة المساعدة vitis لـ PowerShell Core.


لماذا بدأت في القيام بذلك؟


أولاً ، 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
  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/ar467701/


All Articles