निर्देशिका के बजाय श्रेणियाँ। सुविधाजनक फ़ाइल भंडारण के लिए एक उपकरण

लेख से प्रेरित है


"निर्देशिकाओं के बजाय श्रेणियाँ, या लिनक्स Vitis के लिए सिमेंटिक फ़ाइल सिस्टम",

मैंने PowerShell Core के लिए अपने स्वयं के एनालॉग को बनाने का फैसला किया।


मैंने ऐसा क्यों करना शुरू कर दिया?


सबसे पहले, vitis केवल लिनक्स के लिए है।
दूसरे, मैं PowerShell में "पाइप" का उपयोग करना चाहता हूं।


चूंकि मैं एक क्रॉस-प्लेटफॉर्म उपयोगिता बनाना चाहता था, इसलिए मैंने .Net कोर को चुना।


प्रागितिहास


पहले तो अराजकता थी। फिर डिस्क पर फ़ोल्डर्स दिखाई दिए।
लेकिन अराजकता अभी भी राज कर रही है। और टैग दिखाई दिए, साथ ही टैग के लिए सबटैग और समानार्थक शब्द। लेकिन अराजकता ने उन्हें भी कैद कर लिया। और श्रेणियों का आविष्कार किया गया था।


संकल्पना


फ़ाइलें एक फ़ोल्डर पदानुक्रम में संग्रहीत नहीं हैं, लेकिन कुछ श्रेणियों के साथ एक ढेर में। एक एकल फ़ाइल कई श्रेणियों से संबंधित हो सकती है।


यदि आपको एक फ़ाइल खोजने की आवश्यकता है, तो यह उन श्रेणियों में प्रवेश करने के लिए अधिक सुविधाजनक है जहां यह है। यह याद रखना बहुत आसान है कि यह किस फ़ोल्डर में संग्रहीत है।


लेकिन ऐसा फाइल सिस्टम कोड, सोर्स कोड आदि के लिए उपयुक्त नहीं है।
यह स्टोर करने के लिए डिज़ाइन किया गया है, उदाहरण के लिए, पारिवारिक फ़ोटो, संगीत, दस्तावेज़।


के उपयोग


खैर, प्रदर्शन शुरू करते हैं।


ग्रेफाइल स्थापित करें:


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

सबसे पहले, फ़ोल्डर में ग्राफाइल को इनिशियलाइज़ करें:


 #    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 

सब कुछ काम करता है!


लेकिन यह केवल शुरुआत है। अपने नियमित फ़ाइल सिस्टम को ग्रेफाइल में निर्यात करें और शानदार फ़ाइल संगठन प्राप्त करें।


कहां से डाउनलोड करें


यहाँ GitLab Graphile का लिंक दिया गया है।


MIT , ताकि आप इसे व्यावसायिक उद्देश्यों के लिए भी उपयोग कर सकें।


भविष्य की परियोजना


चूँकि यह PowerShell है, न कि ख़ुख-मुखड़ा, आप .NET कोर के तहत एक ग्राफिकल शेल बना सकते हैं।


यह कैसे करें:


  1. Microsoft.PowerShell.SDK स्थापित करें
  2. PowerShell वर्ग का उपयोग करें और ग्राफ़ाइल को कॉल करें।

यदि आपको प्रोजेक्ट पसंद आया है, तो कमिट करें, merge request और चर्चा बनाएं।


पढ़ने के लिए धन्यवाद! का उपयोग करें और आनंद लें!

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


All Articles