دسته ها به جای دایرکتوری ها. ابزاری برای ذخیره سازی راحت فایل

الهام گرفته مقاله

"دسته ها به جای دایرکتوری ها، یا سیستم فایل معنایی برای لینوکس Vitis"،

تصمیم گرفتم آنالوگ خود را از این ابزار بسازم vitis برای PowerShell Core.

چرا این کار را شروع کردم

اولا ، vitis فقط برای لینوکس
در مرحله دوم، من می خواهم از "لوله ها" در 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's و ایجاد بحث.

با تشکر برای خواندن! از آن استفاده کنید و لذت ببرید!

منبع: www.habr.com

اضافه کردن نظر