示例#1
0
        /// <summary>
        /// 迭代的复制指定属性的文件
        /// </summary>
        /// <param name="newFolder"></param>
        /// <param name="type"></param>
        /// <param name="fileAttr"></param>
        /// <param name="dirAttr"></param>
        public void batchTreeCopyFromByAttribute(String newFolder, FileAttributes fileAttr, FileAttributes dirAttr)
        {
            DirectoryInfo newDir = new DirectoryInfo(newFolder);

            if (newDir.Exists && !newDir.FullName.ToLower().Equals(dir.FullName.ToLower()))
            {
                FileInfo[] files = newDir.GetFiles();
                for (int i = 0; i < files.Length; i++)
                {
                    if ((files[i].Attributes & fileAttr) != 0)
                    {
                        FileFunction fileFunc = new FileFunction(files[i]);
                        fileFunc.CopyTo(dir.FullName);
                    }
                }
                DirectoryInfo[] dirs = newDir.GetDirectories();
                for (int i = 0; i < dirs.Length; i++)
                {
                    if ((dirs[i].Attributes & dirAttr) == 0)
                    {
                        DirectoryFunction dirFunc = new DirectoryFunction(dir);
                        dirFunc.batchTreeCopyFromByAttribute(dirs[i].FullName, fileAttr, dirAttr);
                    }
                }
            }
        }
示例#2
0
        /// <summary>
        /// 提取指定类型的文件,排除指定属性
        /// </summary>
        /// <param name="newFolder"></param>
        /// <param name="type"></param>
        public void extractFileByType(String newFolder, String type, FileAttributes fileAttr, FileAttributes dirAttr)
        {
            DirectoryInfo newDir = new DirectoryInfo(newFolder);

            if (newDir.Exists && !newDir.FullName.ToLower().Equals(dir.FullName.ToLower()))
            {
                FileInfo[] files = newDir.GetFiles();
                for (int i = 0; i < files.Length; i++)
                {
                    if ((files[i].Attributes & fileAttr) == 0)
                    {
                        FileFunction fileFunc = new FileFunction(files[i]);
                        if (fileFunc.FileExtName.ToLower().Equals(type.ToLower()))
                        {
                            fileFunc.MoveTo(dir.FullName);
                        }
                    }
                }

                DirectoryInfo[] dirs = newDir.GetDirectories();
                for (int i = 0; i < dirs.Length; i++)
                {
                    if ((dirs[i].Attributes & dirAttr) == 0)
                    {
                        DirectoryFunction dirFunc = new DirectoryFunction(dir);
                        dirFunc.extractFileByType(dirs[i].FullName, type, fileAttr, dirAttr);
                    }
                }
            }
        }
示例#3
0
        /// <summary>
        /// 复制目录
        /// </summary>
        /// <param name="templateFolder"></param>
        public void copyFolder(String templateFolder)
        {
            DirectoryInfo templateDir = new DirectoryInfo(templateFolder);

            if (templateDir.Exists)
            {
                if (!templateDir.FullName.ToLower().Equals(dir.FullName.ToLower()))
                {
                    DirectoryInfo[] dirs = templateDir.GetDirectories();
                    for (int i = 0; i < dirs.Length; i++)
                    {
                        String        name = dirs[i].Name;
                        DirectoryInfo temp = new DirectoryInfo(dir.FullName + "/" + name);
                        if (temp.Exists)
                        {
                            System.Console.WriteLine("文件夹[" + temp.FullName + "]已存在,未能创建新文件夹");
                            continue;
                        }
                        System.Console.WriteLine("复制目录:" + dirs[i].FullName + "......");
                        DirectoryInfo     newFolder = dir.CreateSubdirectory(name);
                        DirectoryFunction dirFun    = new DirectoryFunction(newFolder);
                        dirFun.copyFolder(dirs[i].FullName);
                    }
                }
            }
        }
示例#4
0
 /// <summary>
 /// 迭代的修改当前目录下的子目录名为大小写,排除目录属性
 /// </summary>
 /// <param name="caseName"></param>
 /// <param name="fileAttr"></param>
 /// <param name="dirAttr"></param>
 public void batchTreeCaseDirectoryName(CaseName caseName, FileAttributes dirAttr)
 {
     batchCaseDirectoryName(caseName, dirAttr);
     for (int i = 0; i < childDirs.Length; i++)
     {
         DirectoryFunction dire = new DirectoryFunction(childDirs[i]);
         dire.batchTreeCaseDirectoryName(caseName, dirAttr);
     }
 }
示例#5
0
 /// <summary>
 /// 迭代的修改当前目录下的真实名为大小写,排除文件,目录属性
 /// </summary>
 /// <param name="caseName"></param>
 /// <param name="fileAttr"></param>
 /// <param name="dirAttr"></param>
 public void batchTreeCaseReal(CaseName caseName, FileAttributes fileAttr, FileAttributes dirAttr)
 {
     batchCaseReal(caseName, fileAttr);
     for (int i = 0; i < childDirs.Length; i++)
     {
         if ((childDirs[i].Attributes & dirAttr) == 0)
         {
             DirectoryFunction dire = new DirectoryFunction(childDirs[i]);
             dire.batchTreeCaseReal(caseName, fileAttr, dirAttr);
         }
     }
 }
示例#6
0
 /// <summary>
 /// 实现迭代得修改当前目录下所有文件夹的名称,排除文件夹属性
 /// </summary>
 /// <param name="realNameOrReplace"></param>
 /// <param name="contactStr"></param>
 /// <param name="startNumber"></param>
 /// <param name="strategy"></param>
 /// <param name="dirAttr"></param>
 public void batchTreeModifyDirectoryName(String nameOrReplace, String contactStr, int startNumber, NameStrategy strategy, FileAttributes dirAttr)
 {
     batchModifyDirectoryName(nameOrReplace, contactStr, startNumber, strategy, dirAttr);
     for (int i = 0; i < childDirs.Length; i++)
     {
         if ((childDirs[i].Attributes & dirAttr) == 0)
         {
             DirectoryFunction dirFunc = new DirectoryFunction(childDirs[i]);
             dirFunc.batchTreeModifyDirectoryName(nameOrReplace, contactStr, startNumber, strategy, dirAttr);
         }
     }
 }
示例#7
0
 /// <summary>
 /// 迭代的修改文件扩展名,排除指定(文件以及目录)属性
 /// </summary>
 /// <param name="extName"></param>
 public void batchTreeModifyFileExtName(String extName, FileAttributes fileAttr, FileAttributes dirAttr)
 {
     if (extName == null)
     {
         return;
     }
     batchModifyFileExtName(extName, fileAttr);
     for (int i = 0; i < childDirs.Length; i++)
     {
         if ((childDirs[i].Attributes & dirAttr) == 0)
         {
             DirectoryFunction tempDirFunc = new DirectoryFunction(childDirs[i]);
             tempDirFunc.batchTreeModifyFileExtName(extName, fileAttr, dirAttr);
         }
     }
 }
示例#8
0
 /// <summary>
 /// 迭代的批量修改当前目录下文件的文件名,排除指定的属性
 /// </summary>
 /// <param name="realNameOrReplace"></param>
 /// <param name="contactStr"></param>
 /// <param name="startNumber"></param>
 /// <param name="strategy"></param>
 /// <param name="fileAttr"></param>
 /// <param name="dirAttr"></param>
 public void batchTreeModifyFileRealName(String realNameOrReplace, String contactStr, int startNumber, NameStrategy strategy, FileAttributes fileAttr, FileAttributes dirAttr)
 {
     if (realNameOrReplace == null)
     {
         return;
     }
     batchModifyFileRealName(realNameOrReplace, contactStr, startNumber, strategy, fileAttr);
     for (int i = 0; i < childDirs.Length; i++)
     {
         if ((childDirs[i].Attributes & dirAttr) == 0)
         {
             DirectoryFunction tempDirFunc = new DirectoryFunction(childDirs[i]);
             tempDirFunc.batchTreeModifyFileRealName(realNameOrReplace, contactStr, startNumber, strategy, fileAttr, dirAttr);
         }
     }
 }
示例#9
0
        /// <summary>
        /// 迭代得将当前目录下的文件复制到指定目录中
        /// </summary>
        /// <param name="newFolder"></param>
        /// <param name="fileAttr"></param>
        /// <param name="dirAttr"></param>
        public void batchTreeCopyTo(String newFolder, FileAttributes fileAttr, FileAttributes dirAttr)
        {
            DirectoryInfo newDir = new DirectoryInfo(newFolder);

            if (newDir.Exists)
            {
                if (!newDir.FullName.ToLower().Equals(dir.FullName.ToLower()))
                {
                    batchCopyTo(newFolder, fileAttr);
                    for (int i = 0; i < childDirs.Length; i++)
                    {
                        if ((childDirs[i].Attributes & dirAttr) == 0)
                        {
                            DirectoryFunction tempFunc = new DirectoryFunction(childDirs[i]);
                            tempFunc.batchTreeCopyTo(newFolder, fileAttr, dirAttr);
                        }
                    }
                }
            }
        }
示例#10
0
        /// <summary>
        /// 迭代得把源目录下的文件复制到每一个子目录中,排除文件,目录属性
        /// </summary>
        /// <param name="sourceDir"></param>
        /// <param name="fileAttr"></param>
        /// <param name="dirAttr"></param>
        private void batchTreeAddFileForDirectory(DirectoryInfo sourceDir, FileAttributes fileAttr, FileAttributes dirAttr)
        {
            for (int i = 0; i < childDirs.Length; i++)
            {
                if ((childDirs[i].Attributes & dirAttr) == 0)
                {
                    FileInfo[] subFiles = sourceDir.GetFiles();
                    for (int j = 0; j < subFiles.Length; j++)
                    {
                        if ((subFiles[j].Attributes & fileAttr) == 0)
                        {
                            FileFunction subFile = new FileFunction(subFiles[j]);
                            subFile.CopyTo(childDirs[i].FullName);
                        }
                    }

                    DirectoryFunction dirFunc = new DirectoryFunction(childDirs[i]);
                    dirFunc.batchTreeAddFileForDirectory(sourceDir, fileAttr, dirAttr);
                }
            }
        }
示例#11
0
        static void Main(string[] args)
        {
            #region   固定部分,保留......
            if (args.Length < 1)
            {
                System.Console.WriteLine("格式不正确,参照/?");
                System.Environment.Exit(0);
            }
            if (args[0].ToLower().Equals("/ext"))
            {
                if (args.Length != 3)
                {
                    System.Console.WriteLine("正确格式:程序 /ext 扩展名 排除属性");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定时要修改指定目录下的文件的扩展名吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 3)
                    {
                        DirectoryFunction dirFunc = new DirectoryFunction(new DirectoryInfo("."));
                        String            extName = args[1];
                        FileAttributes    attr    = 0;
                        if (!args[2].Equals("0"))
                        {
                            attr = getAttr(args[2]);
                        }
                        dirFunc.batchModifyFileExtName(extName, attr);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/extA".ToLower()))
            {
                if (args.Length != 4)
                {
                    System.Console.WriteLine("正确格式:程序名 /extA 扩展名 排除文件属性 排除目录属性");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定时要迭代修改指定目录下的文件的扩展名吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 4)
                    {
                        DirectoryFunction dirFunc  = new DirectoryFunction(new DirectoryInfo("."));
                        String            extName  = args[1];
                        FileAttributes    fileAttr = 0;
                        if (!args[2].Equals("0"))
                        {
                            fileAttr = getAttr(args[2]);
                        }
                        FileAttributes dirAttr = 0;
                        if (!args[3].Equals("0"))
                        {
                            dirAttr = getAttr(args[3]);
                        }
                        dirFunc.batchTreeModifyFileExtName(extName, fileAttr, dirAttr);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/real".ToLower()))
            {
                if (args.Length != 6)
                {
                    System.Console.WriteLine("正确格式:程序名 /real 真实名或需替换的字串 连接字串 自增开始数 命名策略 排除属性");
                    System.Console.WriteLine("/0    结尾自增");
                    System.Console.WriteLine("/1    中部自增");
                    System.Console.WriteLine("/2    开始自增");
                    System.Console.WriteLine("/3    开始替换自增");
                    System.Console.WriteLine("/4    结尾替换自增");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定时要修改指定目录下的文件的真实名吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 6)
                    {
                        DirectoryFunction dirFunc       = new DirectoryFunction(new DirectoryInfo("."));
                        String            realOrReplace = args[1];
                        String            contact       = args[2];
                        int            startNumber      = int.Parse(args[3]);
                        NameStrategy   strategy         = getStrategy(args[4]);
                        FileAttributes attr             = getAttr(args[5]);

                        dirFunc.batchModifyFileRealName(realOrReplace, contact, startNumber, strategy, attr);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/realA".ToLower()))
            {
                if (args.Length != 7)
                {
                    System.Console.WriteLine("正确格式:程序名 /realA 真实名或需替换的字串 连接字串 自增开始数 命名策略 排除文件属性 排除目录属性");
                    System.Console.WriteLine("/0    结尾自增");
                    System.Console.WriteLine("/1    中部自增");
                    System.Console.WriteLine("/2    开始自增");
                    System.Console.WriteLine("/3    开始替换自增");
                    System.Console.WriteLine("/4    结尾替换自增");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定时要迭代修改指定目录下的文件的真实名吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 7)
                    {
                        DirectoryFunction dirFunc       = new DirectoryFunction(new DirectoryInfo("."));
                        String            realOrReplace = args[1];
                        String            contact       = args[2];
                        int            startNumber      = int.Parse(args[3]);
                        NameStrategy   strategy         = getStrategy(args[4]);
                        FileAttributes fileAttr         = getAttr(args[5]);
                        FileAttributes dirAttr          = getAttr(args[6]);

                        dirFunc.batchTreeModifyFileRealName(realOrReplace, contact, startNumber, strategy, fileAttr, dirAttr);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/name".ToLower()))
            {
                if (args.Length != 6)
                {
                    System.Console.WriteLine("正确格式:程序名 /name 全名或需替换的字串 连接字串 自增开始数 命名策略 排除属性");
                    System.Console.WriteLine("/0    结尾自增");
                    System.Console.WriteLine("/1    中部自增");
                    System.Console.WriteLine("/2    开始自增");
                    System.Console.WriteLine("/3    开始替换自增");
                    System.Console.WriteLine("/4    结尾替换自增");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定时要修改指定目录下的文件的全名吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 6)
                    {
                        DirectoryFunction dirFunc       = new DirectoryFunction(new DirectoryInfo("."));
                        String            nameOrReplace = args[1];
                        String            contact       = args[2];
                        int            startNumber      = int.Parse(args[3]);
                        NameStrategy   strategy         = getStrategy(args[4]);
                        FileAttributes attr             = getAttr(args[5]);

                        dirFunc.batchModifyFileName(nameOrReplace, contact, startNumber, strategy, attr);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/nameA".ToLower()))
            {
                if (args.Length != 7)
                {
                    System.Console.WriteLine("正确格式:程序名 /nameA 全名或需替换的字串 连接字串 自增开始数 命名策略 排除文件属性 排除目录属性");
                    System.Console.WriteLine("/0    结尾自增");
                    System.Console.WriteLine("/1    中部自增");
                    System.Console.WriteLine("/2    开始自增");
                    System.Console.WriteLine("/3    开始替换自增");
                    System.Console.WriteLine("/4    结尾替换自增");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定时要迭代修改指定目录下的文件的全名吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 7)
                    {
                        DirectoryFunction dirFunc       = new DirectoryFunction(new DirectoryInfo("."));
                        String            nameOrReplace = args[1];
                        String            contact       = args[2];
                        int            startNumber      = int.Parse(args[3]);
                        NameStrategy   strategy         = getStrategy(args[4]);
                        FileAttributes fileAttr         = getAttr(args[5]);
                        FileAttributes dirAttr          = getAttr(args[6]);

                        dirFunc.batchTreeModifyFileName(nameOrReplace, contact, startNumber, strategy, fileAttr, dirAttr);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/move"))
            {
                if (args.Length != 3)
                {
                    System.Console.WriteLine("正确格式:程序名 /move 目的目录名  排除属性");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定时要移动当前目录下的文件吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 3)
                    {
                        DirectoryFunction dirFunc = new DirectoryFunction(new DirectoryInfo("."));
                        String            dirName = args[1];
                        FileAttributes    attr    = getAttr(args[2]);
                        dirFunc.batchMoveTo(dirName, attr);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/moveA".ToLower()))
            {
                if (args.Length != 4)
                {
                    System.Console.WriteLine("正确格式:程序名 /moveA 目的目录名 排除文件属性 排除目录属性");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定时要迭代的移动文件吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 4)
                    {
                        DirectoryFunction dirFunc  = new DirectoryFunction(new DirectoryInfo("."));
                        String            dirName  = args[1];
                        FileAttributes    fileAttr = getAttr(args[2]);
                        FileAttributes    dirAttr  = getAttr(args[3]);
                        dirFunc.batchTreeMoveTo(dirName, fileAttr, dirAttr);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/copyDir".ToLower()))
            {
                if (args.Length != 2)
                {
                    System.Console.WriteLine("正确格式:程序名 /copy 指定要复制的文件夹");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定时赋值指定的目录结构到当前的目录吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 2)
                    {
                        DirectoryFunction dirFunc    = new DirectoryFunction(new DirectoryInfo("."));
                        String            tempFolder = args[1];
                        dirFunc.copyFolder(tempFolder);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/copyFromT".ToLower()))
            {
                if (args.Length != 5)
                {
                    System.Console.WriteLine("正确格式:程序名 /copyFromT 指定要复制的文件夹 指定类型 排除文件属性 排除目录属性");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定时迭代的根据类型复制指定的目录到当前的目录吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 5)
                    {
                        DirectoryFunction dirFunc    = new DirectoryFunction(new DirectoryInfo("."));
                        String            tempFolder = args[1];
                        String            type       = args[2];
                        FileAttributes    fileAttr   = getAttr(args[3]);
                        FileAttributes    dirAttr    = getAttr(args[4]);
                        dirFunc.batchTreeCopyFromByType(tempFolder, type, fileAttr, dirAttr);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/copyFromA".ToLower()))
            {
                if (args.Length != 4)
                {
                    System.Console.WriteLine("正确格式:程序名 /copyFromA 指定要复制的文件夹 指定文件属性 排除目录属性");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定时迭代的根据属性复制指定的目录到当前的目录吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 4)
                    {
                        DirectoryFunction dirFunc    = new DirectoryFunction(new DirectoryInfo("."));
                        String            tempFolder = args[1];
                        FileAttributes    fileAttr   = getAttr(args[2]);
                        FileAttributes    dirAttr    = getAttr(args[3]);
                        dirFunc.batchTreeCopyFromByAttribute(tempFolder, fileAttr, dirAttr);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/extractT".ToLower()))
            {
                if (args.Length != 5)
                {
                    System.Console.WriteLine("正确格式:程序名 /extractT 指定要提取的文件夹 指定类型 排除文件属性 排除目录属性");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定时迭代的根据类型提取文件吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 5)
                    {
                        DirectoryFunction dirFunc    = new DirectoryFunction(new DirectoryInfo("."));
                        String            tempFolder = args[1];
                        String            type       = args[2];
                        FileAttributes    fileAttr   = getAttr(args[3]);
                        FileAttributes    dirAttr    = getAttr(args[4]);
                        dirFunc.extractFileByType(tempFolder, type, fileAttr, dirAttr);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/extractA".ToLower()))
            {
                if (args.Length != 4)
                {
                    System.Console.WriteLine("正确格式:程序名 /extractA 指定要提取的文件夹 指定文件属性 排除目录属性");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定时迭代的根据属性提取文件吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 4)
                    {
                        DirectoryFunction dirFunc    = new DirectoryFunction(new DirectoryInfo("."));
                        String            tempFolder = args[1];
                        FileAttributes    fileAttr   = getAttr(args[2]);
                        FileAttributes    dirAttr    = getAttr(args[3]);
                        dirFunc.extractFileByAttribute(tempFolder, fileAttr, dirAttr);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/createF".ToLower()))
            {
                if (args.Length != 9)
                {
                    System.Console.WriteLine("正确格式:程序名 /createF 文件真实名 连接名 开始数字 扩展名(带点号)追加字符串 创建数目 命名策略 指定文件属性");
                    System.Console.WriteLine("/0    结尾自增");
                    System.Console.WriteLine("/1    中部自增");
                    System.Console.WriteLine("/2    开始自增");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定要创建文件吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 9)
                    {
                        DirectoryFunction dirFunc  = new DirectoryFunction(new DirectoryInfo("."));
                        String            realName = args[1];
                        String            contact  = args[2];
                        int            startNumber = int.Parse(args[3]);
                        String         extName     = args[4];
                        String         append      = args[5];
                        int            number      = int.Parse(args[6]);
                        NameStrategy   strategy    = getStrategy(args[7]);
                        FileAttributes attr        = getAttr(args[8]);
                        dirFunc.batchCreateFiles(realName, contact, startNumber, extName, append, number, strategy, attr);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/createD".ToLower()))
            {
                if (args.Length != 7)
                {
                    System.Console.WriteLine("正确格式:程序名 /createD 目录真实名 连接名 开始数字 创建数目 命名策略 指定目录属性");
                    System.Console.WriteLine("/0    结尾自增");
                    System.Console.WriteLine("/1    中部自增");
                    System.Console.WriteLine("/2    开始自增");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定要创建目录吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 7)
                    {
                        DirectoryFunction dirFunc  = new DirectoryFunction(new DirectoryInfo("."));
                        String            realName = args[1];
                        String            contact  = args[2];
                        int            startNumber = int.Parse(args[3]);
                        int            number      = int.Parse(args[4]);
                        NameStrategy   strategy    = getStrategy(args[5]);
                        FileAttributes attr        = getAttr(args[6]);
                        dirFunc.batchCreateDirectories(realName, contact, startNumber, number, strategy, attr);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/copy".ToLower()))
            {
                if (args.Length != 3)
                {
                    System.Console.WriteLine("正确格式:程序名 /copy 目的目录名  排除属性");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定时要复制当前目录下的文件吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 3)
                    {
                        DirectoryFunction dirFunc = new DirectoryFunction(new DirectoryInfo("."));
                        String            dirName = args[1];
                        FileAttributes    attr    = getAttr(args[2]);
                        dirFunc.batchCopyTo(dirName, attr);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/copyA".ToLower()))
            {
                if (args.Length != 4)
                {
                    System.Console.WriteLine("正确格式:程序名 /copyA 目的目录名 排除文件属性 排除目录属性");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定时要迭代的复制文件吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 4)
                    {
                        DirectoryFunction dirFunc  = new DirectoryFunction(new DirectoryInfo("."));
                        String            dirName  = args[1];
                        FileAttributes    fileAttr = getAttr(args[2]);
                        FileAttributes    dirAttr  = getAttr(args[3]);
                        dirFunc.batchTreeCopyTo(dirName, fileAttr, dirAttr);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/addF2D".ToLower()))
            {
                if (args.Length != 3)
                {
                    System.Console.WriteLine("正确格式:程序名 /addF2D 排除文件属性 排除目录属性");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定时要的添加当前目录文件到子目录吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 3)
                    {
                        DirectoryFunction dirFunc  = new DirectoryFunction(new DirectoryInfo("."));
                        FileAttributes    fileAttr = getAttr(args[1]);
                        FileAttributes    dirAttr  = getAttr(args[2]);
                        dirFunc.batchAddFileForDirectory(fileAttr, dirAttr);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/addF2DA".ToLower()))
            {
                if (args.Length != 3)
                {
                    System.Console.WriteLine("正确格式:程序名 /addF2DA 排除文件属性 排除目录属性");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定时要的迭代的添加当前目录文件到子目录吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 3)
                    {
                        DirectoryFunction dirFunc  = new DirectoryFunction(new DirectoryInfo("."));
                        FileAttributes    fileAttr = getAttr(args[1]);
                        FileAttributes    dirAttr  = getAttr(args[2]);
                        dirFunc.batchTreeAddFileForDirectory(fileAttr, dirAttr);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/Dname".ToLower()))
            {
                if (args.Length != 6)
                {
                    System.Console.WriteLine("正确格式:程序名 /Dname 目录名或需替换的字串 连接字串 自增开始数 命名策略 排除属性");
                    System.Console.WriteLine("/0    结尾自增");
                    System.Console.WriteLine("/1    中部自增");
                    System.Console.WriteLine("/2    开始自增");
                    System.Console.WriteLine("/3    开始替换自增");
                    System.Console.WriteLine("/4    结尾替换自增");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定时要修改指定目录下的目录的名字吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 6)
                    {
                        DirectoryFunction dirFunc       = new DirectoryFunction(new DirectoryInfo("."));
                        String            nameOrReplace = args[1];
                        String            contact       = args[2];
                        int            startNumber      = int.Parse(args[3]);
                        NameStrategy   strategy         = getStrategy(args[4]);
                        FileAttributes attr             = getAttr(args[5]);

                        dirFunc.batchModifyDirectoryName(nameOrReplace, contact, startNumber, strategy, attr);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/DnameA".ToLower()))
            {
                if (args.Length != 6)
                {
                    System.Console.WriteLine("正确格式:程序名 /DnameA 目录名或需替换的字串 连接字串 自增开始数 命名策略 排除属性");
                    System.Console.WriteLine("/0    结尾自增");
                    System.Console.WriteLine("/1    中部自增");
                    System.Console.WriteLine("/2    开始自增");
                    System.Console.WriteLine("/3    开始替换自增");
                    System.Console.WriteLine("/4    结尾替换自增");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定时要迭代得修改指定目录下的目录的名字吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 6)
                    {
                        DirectoryFunction dirFunc       = new DirectoryFunction(new DirectoryInfo("."));
                        String            nameOrReplace = args[1];
                        String            contact       = args[2];
                        int            startNumber      = int.Parse(args[3]);
                        NameStrategy   strategy         = getStrategy(args[4]);
                        FileAttributes attr             = getAttr(args[5]);

                        dirFunc.batchTreeModifyDirectoryName(nameOrReplace, contact, startNumber, strategy, attr);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/caseExt".ToLower()))
            {
                if (args.Length != 3)
                {
                    System.Console.WriteLine("正确格式:程序 /caseExt 大小写指令 排除属性");
                    System.Console.WriteLine("/l 转换为小写");
                    System.Console.WriteLine("/u 转换为大写");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定要转换指定目录下的文件的扩展名为指定大小写吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 3)
                    {
                        DirectoryFunction dirFunc  = new DirectoryFunction(new DirectoryInfo("."));
                        CaseName          caseName = getCaseName(args[1]);
                        FileAttributes    attr     = 0;
                        if (!args[2].Equals("0"))
                        {
                            attr = getAttr(args[2]);
                        }
                        dirFunc.batchCaseExt(caseName, attr);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/caseExtA".ToLower()))
            {
                if (args.Length != 4)
                {
                    System.Console.WriteLine("正确格式:程序 /caseExtA 大小写指令 排除文件属性 排除目录属性");
                    System.Console.WriteLine("/l 转换为小写");
                    System.Console.WriteLine("/u 转换为大写");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定要迭代得转换指定目录下的文件的扩展名为指定大小写吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 4)
                    {
                        DirectoryFunction dirFunc  = new DirectoryFunction(new DirectoryInfo("."));
                        CaseName          caseName = getCaseName(args[1]);
                        FileAttributes    fileAttr = 0;
                        if (!args[2].Equals("0"))
                        {
                            fileAttr = getAttr(args[2]);
                        }
                        FileAttributes dirAttr = 0;
                        if (!args[3].Equals("0"))
                        {
                            dirAttr = getAttr(args[3]);
                        }
                        dirFunc.batchTreeCaseExt(caseName, fileAttr, dirAttr);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/caseReal".ToLower()))
            {
                if (args.Length != 3)
                {
                    System.Console.WriteLine("正确格式:程序 /caseReal 大小写指令 排除属性");
                    System.Console.WriteLine("/l 转换为小写");
                    System.Console.WriteLine("/u 转换为大写");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定要转换指定目录下的文件的真实名为指定大小写吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 3)
                    {
                        DirectoryFunction dirFunc  = new DirectoryFunction(new DirectoryInfo("."));
                        CaseName          caseName = getCaseName(args[1]);
                        FileAttributes    attr     = 0;
                        if (!args[2].Equals("0"))
                        {
                            attr = getAttr(args[2]);
                        }
                        dirFunc.batchCaseReal(caseName, attr);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/caseRealA".ToLower()))
            {
                if (args.Length != 4)
                {
                    System.Console.WriteLine("正确格式:程序 /caseRealA 大小写指令 排除文件属性 排除目录属性");
                    System.Console.WriteLine("/l 转换为小写");
                    System.Console.WriteLine("/u 转换为大写");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定要迭代得转换指定目录下的文件的真实名为指定大小写吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 4)
                    {
                        DirectoryFunction dirFunc  = new DirectoryFunction(new DirectoryInfo("."));
                        CaseName          caseName = getCaseName(args[1]);
                        FileAttributes    fileAttr = 0;
                        if (!args[2].Equals("0"))
                        {
                            fileAttr = getAttr(args[2]);
                        }
                        FileAttributes dirAttr = 0;
                        if (!args[3].Equals("0"))
                        {
                            dirAttr = getAttr(args[3]);
                        }
                        dirFunc.batchTreeCaseReal(caseName, fileAttr, dirAttr);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/caseName".ToLower()))
            {
                if (args.Length != 3)
                {
                    System.Console.WriteLine("正确格式:程序 /caseName 大小写指令 排除属性");
                    System.Console.WriteLine("/l 转换为小写");
                    System.Console.WriteLine("/u 转换为大写");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定要转换指定目录下的文件的全名为指定大小写吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 3)
                    {
                        DirectoryFunction dirFunc  = new DirectoryFunction(new DirectoryInfo("."));
                        CaseName          caseName = getCaseName(args[1]);
                        FileAttributes    attr     = 0;
                        if (!args[2].Equals("0"))
                        {
                            attr = getAttr(args[2]);
                        }
                        dirFunc.batchCaseName(caseName, attr);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/caseNameA".ToLower()))
            {
                if (args.Length != 4)
                {
                    System.Console.WriteLine("正确格式:程序 /caseNameA 大小写指令 排除文件属性 排除目录属性");
                    System.Console.WriteLine("/l 转换为小写");
                    System.Console.WriteLine("/u 转换为大写");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定要迭代得转换指定目录下的文件的全名为指定大小写吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 4)
                    {
                        DirectoryFunction dirFunc  = new DirectoryFunction(new DirectoryInfo("."));
                        CaseName          caseName = getCaseName(args[1]);
                        FileAttributes    fileAttr = 0;
                        if (!args[2].Equals("0"))
                        {
                            fileAttr = getAttr(args[2]);
                        }
                        FileAttributes dirAttr = 0;
                        if (!args[3].Equals("0"))
                        {
                            dirAttr = getAttr(args[3]);
                        }
                        dirFunc.batchTreeCaseName(caseName, fileAttr, dirAttr);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/caseDName".ToLower()))
            {
                if (args.Length != 3)
                {
                    System.Console.WriteLine("正确格式:程序 /caseDName 大小写指令 排除目录属性");
                    System.Console.WriteLine("/l 转换为小写");
                    System.Console.WriteLine("/u 转换为大写");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定要转换指定目录下子目录名为指定大小写吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 3)
                    {
                        DirectoryFunction dirFunc  = new DirectoryFunction(new DirectoryInfo("."));
                        CaseName          caseName = getCaseName(args[1]);
                        FileAttributes    attr     = 0;
                        if (!args[2].Equals("0"))
                        {
                            attr = getAttr(args[2]);
                        }
                        dirFunc.batchCaseDirectoryName(caseName, attr);
                    }
                }
            }
            else if (args[0].ToLower().Equals("/caseDNameA".ToLower()))
            {
                if (args.Length != 3)
                {
                    System.Console.WriteLine("正确格式:程序 /caseDName 大小写指令 排除目录属性");
                    System.Console.WriteLine("/l 转换为小写");
                    System.Console.WriteLine("/u 转换为大写");
                    System.Environment.Exit(0);
                }
                System.Console.WriteLine("确定要迭代得转换指定目录下的子目录名为指定大小写吗? (y/n)");
                if (System.Console.ReadLine().ToLower().Equals("y"))
                {
                    if (args.Length == 3)
                    {
                        DirectoryFunction dirFunc  = new DirectoryFunction(new DirectoryInfo("."));
                        CaseName          caseName = getCaseName(args[1]);
                        FileAttributes    attr     = 0;
                        if (!args[2].Equals("0"))
                        {
                            attr = getAttr(args[2]);
                        }
                        dirFunc.batchTreeCaseDirectoryName(caseName, attr);
                    }
                }
            }
            #endregion
            else if (args[0].Equals("/?"))
            {
                showCmd();
            }
            else
            {
                System.Console.WriteLine("未知指令,指令输入不正确,请重新输入,注意大小写.......");
                System.Environment.Exit(0);
            }
        }