USB Reset Attribute

6 Apr

 

Ray Yagubyan

Ray Yagubyan

Introduction

What do you do when your Removal Device or USB gets affected by a virus and files are hidden? Most of the Antivirus scan the device and delete the virus only. So we can’t see the files in our USB device which is hidden by the virus. So here, the “Ultimate USB Reset Attribute” comes with a powerful option.

Idea Behind the Code

I just embed my code with the existing one which is already available in here (CodeProject). So my first sincere thanks to CodeProject, without this I could not do it.

Using the Code

Using this code, the number of USB or removal devices is listed in a dropdown which is currently connected to a computer.

if(!Directory .Exists (currDir ))
            return;
            //set the progress bar max value
            pbar.Maximum += Directory.GetFileSystemEntries(currDir).Count();
            //iterate over the files
            foreach (string ff in Directory.GetFiles(currDir))
            {   //super cast to the parent class FileSystemInfo
                ResetAttribute((new FileInfo(ff)) as FileSystemInfo );
             }
          
            foreach (string dr in Directory.GetDirectories(currDir))
            {
                if (!Directory.Exists(dr))
                    return;
                //reset the directory attribute
               ResetAttribute((new DirectoryInfo(dr)) as FileSystemInfo);
                      ScanFiles(dr); //scan the directory  
//Changing the file attributes by using this code.
try
            { //bitwise operator on the file attribute
                fsi.Attributes &= ~FileAttributes.Hidden;
                fsi.Attributes &= ~FileAttributes.System;

                fsi.Attributes &= ~FileAttributes.ReadOnly;
            pbar.Value += 1;
            }
            catch (Exception ex)
            {
                return;
            } 
//Whenever the main form is loaded, it checks and gets drive details by using this code.
 var drv = from dr in DriveInfo.GetDrives()
                     where dr.IsReady == true && dr.DriveType == DriveType.Removable
                     select dr;
            foreach (DriveInfo dinfo in drv)
            {
                cmbUSB.Items.Add(dinfo.Name);
                cmbUSB.SelectedIndex = 0;
              } 
 
  DriveInfo dr = new DriveInfo(cmbUSB.SelectedItem.ToString());
    lblusb.Text = dr.VolumeLabel + " (" + dr.Name + ")";

Command Line Reseter

Just enter the Drive Letter what you want to reset. Using this code.

set /p letter=
attrib -s -h -a /s /d %letter%:\*.*

Points of Interest

Hope this version helps you. This is the general idea, which I got in my dreams!!!

Screenshots

About these ads

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: