Jun 22, 2007

c# 遍历指定分区/文件夹下的所有文件夹

       同学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;
            }
        }
    }
}

Jun 20, 2007

答辩完了

    今天早上,下着小雨,不过高新区那边挺大的。
    早上起来去高新区拿就业协议书,下午又参加答辩。
     直到晚上才轮到我,这些天弄得挺累。。。
     log下,休息去
   

Jun 6, 2007

牢骚

   今天拍毕业照,但一点心情也没有,挺烦。班里照了一张,我就走人了
   唉,还是赶快写毕业论文
   四年大学,让它快点结束吧
  

Jun 1, 2007

sed 、awk

awk介绍 http://blog.csdn.net/symield/archive/2004/09/27/117771.aspx
awk事例 1 http://blog.csdn.net/Aydge/archive/2004/11/07/170672.aspx
awk事例 2 http://blog.csdn.net/yayong/archive/2004/11/12/178146.aspx
unix awk手册 http://blog.csdn.net/WillHunt/archive/2001/06/14/5814.aspx

sed home http://sed.sourceforge.net/
sed百宝箱 http://sed.sourceforge.net/grabbag/
sed单行脚本 http://sed.sourceforge.net/sed1line_zh-CN.html
GNU sed的主页http://www.gnu.org/software/sed/sed.html
sed的FAQ http://sed.sourceforge.net/sedfaq.html
GNU sed的在线文档 http://www.gnu.org/software/sed/manual/sed.html