同学u盘中毒,导致u盘内的所有文件夹都变成了隐藏文件,并且在u盘根目录下生成以每个文件夹为名、图标为文件夹图标的病毒程序。删除这些病毒程序很容易,但文件夹的隐藏属性通过 右键---〉属性 无法修改。
中午他手动通过重建目录、移动文件,也弄好了,但是太麻烦了,而且下次要是又中这种毒了,。。。
晚上,我们三个(我、Yang、TaoA)讨论了下,挺有意思,以后讨论的机会就不多了
后来,我用C#写了一个小程序,可以完成遍历、设置指定分区中的隐藏文件夹属性为Normal。代码如下:
using System;
using System.IO;
using System.Collections.Generic;
using System.Text;
namespace modifyFileAttrib
{
class Program
{
static void Main(string[] args)
{
string [] drives = Environment.GetCommandLineArgs(); //从终端获得用户输入的参数
string str = "";
for (int i = 1; i < drives.Length; i++) // 程序名是第一个参数,所以i从1开始,而不是从0开始
{
str = drives[i];
SetAllDirNormal(str); // 对用户输入的每个参数,调用SetAllDirNormal函数
}
Console.WriteLine("Has Done.");
return;
}
// 设置指定分区/文件夹中的所有隐藏文件夹属性为Normal
static void SetAllDirNormal(string drive)
{
DirectoryInfo dir = new DirectoryInfo(drive); // 得到磁盘(drive)内的所有文件夹
DirectoryInfo[] dirList = dir.GetDirectories(); // 获得dir文件夹下的所有子文件夹
foreach (DirectoryInfo d in dirList)
{
FileInfo dirInfo = new FileInfo(d.FullName); // 为下面设置文件夹熟悉做准备
SetDirNormal(dirInfo); // 设置文件夹属性
SetAllDirNormal(d.FullName); // 递归调用
//Console.WriteLine("{0}", d.FullName);
}
}
// 若文件夹的属性为Hidden,则设置为Normal
static void SetDirNormal(FileInfo info)
{
if ((info.Attributes & FileAttributes.Hidden) != 0)
{
info.Attributes = FileAttributes.Normal;
}
}
}
}
中午他手动通过重建目录、移动文件,也弄好了,但是太麻烦了,而且下次要是又中这种毒了,。。。
晚上,我们三个(我、Yang、TaoA)讨论了下,挺有意思,以后讨论的机会就不多了
后来,我用C#写了一个小程序,可以完成遍历、设置指定分区中的隐藏文件夹属性为Normal。代码如下:
using System;
using System.IO;
using System.Collections.Generic;
using System.Text;
namespace modifyFileAttrib
{
class Program
{
static void Main(string[] args)
{
string [] drives = Environment.GetCommandLineArgs(); //从终端获得用户输入的参数
string str = "";
for (int i = 1; i < drives.Length; i++) // 程序名是第一个参数,所以i从1开始,而不是从0开始
{
str = drives[i];
SetAllDirNormal(str); // 对用户输入的每个参数,调用SetAllDirNormal函数
}
Console.WriteLine("Has Done.");
return;
}
// 设置指定分区/文件夹中的所有隐藏文件夹属性为Normal
static void SetAllDirNormal(string drive)
{
DirectoryInfo dir = new DirectoryInfo(drive); // 得到磁盘(drive)内的所有文件夹
DirectoryInfo[] dirList = dir.GetDirectories(); // 获得dir文件夹下的所有子文件夹
foreach (DirectoryInfo d in dirList)
{
FileInfo dirInfo = new FileInfo(d.FullName); // 为下面设置文件夹熟悉做准备
SetDirNormal(dirInfo); // 设置文件夹属性
SetAllDirNormal(d.FullName); // 递归调用
//Console.WriteLine("{0}", d.FullName);
}
}
// 若文件夹的属性为Hidden,则设置为Normal
static void SetDirNormal(FileInfo info)
{
if ((info.Attributes & FileAttributes.Hidden) != 0)
{
info.Attributes = FileAttributes.Normal;
}
}
}
}