درووستکردنی پێرمادیڵیت: درووستکردنی مێثۆدەکانی سڕینەوەی فایل

0

پێرمادیڵیت بەرنامەیەکی سەرچاوەکراوەی سڕینەوی فایلی کۆمپیوتەرە. یەکێکە لە پڕۆژەکانی درەختی گەشەپێدەران. لە وتاری پێشتر باسی چۆنییەتی کارکردنی بەرنامەکەم کرد. ئەوجارەیان کەمێک سەیری کۆدەکان دەکەین.

بەشەکانی ئەو زنجیرە وتارە:

تێبینی گرنگ: ئەگەر دیسکەکەت SSD یە ئەوا واباشە ئەو بەرنامەیە لەسەری تاقی نەکەیتەوە. بۆ زانینی هۆکارەکەشی بەشی یەکەم بخوێنەوە. بەڵام دەتوانی هەندێک فایل لەسەر فلاش میمۆرییەک دابنێیت و بەرنامەکەی پێ تاقی بکەیتەوە.

پێرمادیڵیت بە C# درووستکراوە و فرەیموۆرکی WPF بەکاردەهێنێت. بۆیە یەکەمجار پڕۆژەیەکی WPF ی نوێ درووست بکە و دڵنیابەوە لەوەی کە بەرنامەکە .Net Framework 4.5 یان سەرووتر بەکاردەهێنێت، ئەوە گرنگە لەبەر ئەوەی دواتر async و await بەکار دەهێنین کە لە وەشانی 4.5 بۆ Dot net framework زیاد کران.

ئێستا MainWindow.xaml بکەوە و Grid ەکەی بەو شێوەیە دەستکاری بکە:

لەو کۆدەدا شتێکی وامان نەکردووە، تەنها تێکست بۆکسێکمان زیاد کردووە بۆ ئەوەی بەکارهێنەر بتوانێ ناوی ئەو فایلەی تێدا بنووسێت کە دەیەوێ بیسڕێتەوە لەگەڵ دوگمەیەکیش بۆ سڕینەوەی فایلەکە. ئێستا دەبێ ویندۆیەکە بەو شێوەیە بێت:

زۆر باشە. ئێستا دەچین شێوازی سڕینەوەی فایلەکە دەنووسین. یەکەمجار کڵاسێکی نوێ درووستبکە بە ناوی Shredder و  ڤاریەبڵێک و کۆنستانتێکی بەو شێوەیەی تێدا پێناسە بکە:

لە کاتی کارکردن لەگەڵ دیسک واباشە بە کۆمەڵ داتاکان بنێری بۆ نووسین لە بڕی ئەوەی هەر Byteێک بە جیا بنێری، بەو شێوەیە خێراتر دەنووسرێ لەسەر دیسک. بۆیە ئێمە Array یەک بەکار دەهێن. MAX_BUFFER_SIZE یش قەبارەی ئەو ئەڕڕەیە دیاری دەکات. کە بە یەک مێگابایتمان داناوە. _random یش بۆ درووستکردنی ژمارەی هەڕەمەکی بەکاردەهێنین بۆ پڕکردنەوەی ئەو ئەڕڕەیەی باسمانکرد بۆ ئەوەی لەسەر داتای فایلەکەی بنووسین.

دوای ئەوە مێثۆدێک درووست دەکەین بۆ overwrite کردنی فایلەکان. کاری ئەو مێثۆدە ئەوەیە داتا ڕاستەقینەکەی فایلەکان بگۆڕێت بۆ داتای هەڕەمەکی و بێمانا. بەو شێوەیە فایلەکە بێکەڵک دەبێت. ئەو مێثۆدە بۆ کڵاسی Shredder زیاد بکە:

هەر وەک دەبینی ئەو مێثۆدە بە چوار هەنگاو کاردەکات. لە هەنگاوی یەکەم Stream یێک بۆ ئەو فایلە دەکەینەوە کە دەمانەوێ بیسڕێنەوە. ئەوەیان گرینگە، لەبەر ئەوەی بێ ستریم ناتوانین دەستکاری فایلەکە بکەین. دواتر لە هەنگاوی دووەم ئەڕڕەیەک پێناسە دەکەین و دواتریش پڕی دەکەین لە ژمارەی هەڕەمەکی. لە هەنگاوی سێیەمیش ژمارە هەڕەمەکییەکان لەسەر داتا راستەقینەکە دەنووسین. لە هەنگاوی چوارەمیش قەبارەی فایلەکە دەکەینە سفر بۆ سەرلێشێواندنی بەرنامەکانی ڕیکەڤەریی فایل.

ئەو جارەیان مێثۆدێکی دیکە زیاد دەکەین بۆ تێکدانی مێتاداتای فایلەکە:

لە هەنگاوی یەکەم شوێنی ئەو فۆڵدەرە وەردەگرین کە فایلەکەی تێدایە. دواتر ٥ جار فایلەکە ناوی فایلەکە دەگۆڕێن. لە هەنگاوی سێیەمیش هەموو بەروارەکانی فایلەکە (بەرواری درووستکردن، بەرواری دوایین خوێندنەوە، بەرواری دوایین دەستکاری) دەکەینە ١/١/٢٠٠٠

ئەگەر تێبینیت کردبێت هەردوو مێثۆد یەک پارامیتەر وەردەگرن لە جۆری FileInfo یە. ئێستا مێثۆدێکی دیکە درووست دەکەین کە پارامیتەرێکی String وەربگرێت و دڵنیاشببێتەوە کە ئەو Path ـەی کە وەریگرتووە بێ کێشەیە. ئەو مێثۆدە هەردوو مێثۆدەکەی دیکە بانگ دەکاتەوە و دواتر فایلەکە دەسڕێتەوە:

لە هەنگاوی یەکەمی ئەو مێثۆدە دڵنیا دەبینەوە کە ئەو فایلە بوونی هەیە. دواتر زانیاری فایلەکە وەردەگرین و لە نێو ڤاریەبڵێک هەڵی دەگرین. دواتر لە هەنگاوی سێیەم ئەو ڤارییەبڵە بەکاردەهێنین وەک پارامیتەر بۆ overwrite کردن و تێکدانی مێتاداتای فایلەکە. لە کۆتاییشدا فایلەکە دەسڕینەوە.

زۆرباشە، ئێستا کڵاسەکە ئامادەیە بۆ بەکارهێنان. بڕۆ MainWindow.xaml بکەوە و Click Handler ێک بۆ دوگمەی Shred زیاد بکە. بەو شێوەیە:

لێرەدا مێثۆدی ShredFile بەکاردەهێنینەوە و نووسینی ناو تێکست بۆکسەکەی بۆ دەنێرین. وە ئەگەر هەڵەیەکیش ڕوویدا، لە مێسج بۆکسێک بە بەکارهێنەرەکەی نیشان دەدەین.

ئێستا دەبێ بەرنامەکە ئامادەبێت. CTRL + F5 داگرە و تاقی بکەوە 🙂

هەرچەندە ئێستا بەرنامەکە کاردەکات، بەڵام کەموکورتی زۆرە. یەکێک لەوانەش کاتێک کلیک لەسەر دوگمەی Shred دەکەی، بەرنامەکە جام دەکات تاوەکو فایلەکە بەتەواوی دەسڕێتەوە. لە وتاری دابێ ان شاءالله باسی چارەسەری ئەو کێشەیەش دەکەم بە بەکارهێنانی Asynchronous Programming. بەڵام ئەگەر ناتوانی تا ئەو کات سەبر بگری، دەتوانی لێرە هەموو کۆدەکانی پێرمادیڵیت ببینی دایانبەزێنی. بۆ سڕینەوەی فایلەکان، سەیری کڵاسی ShredderService.cs بکە.

دەتوانی هەموو کۆدەکانی ئەو وتارە لێرە دابەزێنی

قوتابی بەشی ئەندازیاریی سیستەمی زانیاری لە زانکۆی پۆلیتەکنیکی هەولێر

لێدوانێک بنووسە