اینکه
این برنامه به چه دردی می خوره باید بگم همیشه دیدید که وقتی ویروس وارد
سیستم میشه میاد خیلی از فایل ها رو به صورت hidden , system و … می کنه
اینجا ما می تونیم از طریق این برنامه اون فایل ها رو به حالت عادی
برگردونیم و یا تشخیص بدیم که فایل دارای چه خاصیتی هست
بعد
اینکه تو خیلی از بد افزار ها مخصوصا سری autorun این مشکل بوده که وقتی
با windows explorer وارد درایو شدیم اتوماتیک ویروس از طریق فایل
autorun.inf وارد سیستم شده و اگه از طریق این برنامه واردش بشید دیگه این
مشکل هم وحود نداره
در مرحله ی اول آموزش نوشتن یک file browser رو داریم که می خوام با کلیک روی هر کدوم از فایل ها بتونم Attribute اون رو تغییر بدم
اول از همه شروع به نوشتن یک folder browser میکنیم
برای این کار ما باید رفرنس های Imports System و Imports System.IO رو وارد کنیم
بعد 3 تا listview می زارم یکی برای لیست کلیه ی درایو ها و یکی برای لیست فولدر ها و دیگری برای فایل
در listview اول ککه مربوط به لیست دراو ها هست باید کد زیر رو بزنیم
For Each Dir As String In Directory.GetLogicalDrives() ListView1.Items.Add(Dir) Next
اگه
دقت کنید من اینجا اومدم متغیری رو با نام dir از نوع string زدم و گفتم
که از متود directory جهت لیست کردن دراو های لوجیکال استفاده کن یعنی
getlogicaldrive رو بهش دادم
و تو خط دوم هم گفتم اون رو داخل listview اضافه کن
این کد رو باید در form _ load بزنیم که خودش بالا بیاد و اجرا بشه
حالا می خوام بگم وقتی کلیک کردیم روی هر کدوم از درایو ها لیستی از فولدر های موجودشو بیاره منتها در listview2
ListView2.Items.Clear() For Each Dir As String In Directory.GetDirectories(ListView1.SelectedItems(0).Text) ListView2.Items.Add(Dir) Next
خط اول رو زدم که هر بار کلیک جدید لیست رو پاک کنه و از نو بیاد فرامین رو اجرا کنه
خط دوم مثل بالاست منتها گفتم از متود directory گزینه ی GetDirectories رو انتخاب کردم که میشه لیست فولدر ها
اما لیست فولدر های کجا ؟ داخل پرانتز زدم ListView1.SelectedItems(0).Text یعنی گزینه ی انتخاب شده listview1
کد بالا رو باید در رویداد SelectedIndexChanged مربوط به lstiview درایو ها بزاریم
و بعد هم می خوام با کلیک روی لیست فولدر ها لیست فایل های داخل اون هم در داخل listview بعدی ظاهر بشه
ListView2.Items.Clear() For Each files In Directory.GetFiles(ListView2.SelectedItems(0).Text) ListView3.Items.Add(files) Next
که گزینه ی getfiles رو برای متود directory انتخاب کردم
خوب تا اینجا ما اومدیم file / folder browser رو نوشتیم
حالا می خوایم یک fileattribute changer قوی بنویسیم
برنامه باید قادر باشه که ویژگی های زیر رو به یک فایل
Device
Directory
Encrypted
Hidden
IntegrityStream
Normal
NoScrubData
NotContentIndexed
Offline
ReadOnly
ReparsePoint
SparseFile
System
Temporary
پس به این تعداد میایم checkbox میزاریم و اسامی بالا رو بهش بدید
و جهت درک راحت تر یک TExtbox بزارید که آدرس فایل انتخاب شده رو داخل اون بزاره با کد زیر
TextBox1.Text = ListView3.SelectedItems(0).Text
حالا میایم میگیم که هر وقت گزینه ی مثلا hidden رو زدیم این ویژگی به فایل داده بشه و اگر تیک برداشته شد این ویژگی رو از بردار و به حالت عادی برگردون با کد زیر
if checkhidden.checked=true then Dim attribute As System.IO.FileAttributes = FileAttributes.Hidden File.SetAttributes(TextBox1.Text, FileAttributes.Hidden) else Dim attribute As System.IO.FileAttributes = FileAttributes.normal File.SetAttributes(TextBox1.Text, FileAttributes.normal)
و به همین ترتیب می تونید به جای گزینه ی hiiden هر کدام از گزینه ای بالا رو انتخاب کنید
البته باید کمی بیشتر از اینها فرامین شرطی بزارید ولی Base کار همینه دیگه ما بقیه می مونه به خودتون که چقدر خلاقیت داشته باشید
اگه خواستید در مورد این سری attribute که بالا زدم بیشتر بدونید لینک زیر رو ببینید
http://msdn.microsoft.com/en-us/libr…ttributes.aspx