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