Example #1
0
        /// <summary>
        /// 解析命名策略
        /// </summary>
        /// <param name="paraStrategy"></param>
        /// <returns></returns>
        private static NameStrategy getStrategy(String paraStrategy)
        {
            char[]       strategyChar = paraStrategy.ToLower().ToCharArray();
            NameStrategy strategy     = 0;

            if (strategyChar[1] == '0')
            {
                strategy = NameStrategy.IncreaseAtTail;
            }
            else if (strategyChar[1] == '1')
            {
                strategy = NameStrategy.IncreaseAtMiddle;
            }
            else if (strategyChar[1] == '2')
            {
                strategy = NameStrategy.IncreaseAtHead;
            }
            else if (strategyChar[1] == '3')
            {
                strategy = NameStrategy.CutStrAtCharForIncHead;
            }
            else if (strategyChar[1] == '4')
            {
                strategy = NameStrategy.CutStrAtCharForIncTail;
            }

            return(strategy);
        }
Example #2
0
        public Name(string bareName, NameStrategy strategy)
        {
            _strategy = strategy;
            switch (strategy)
            {
            case NameStrategy.Capitalization:
                parts = SplitNameByCapitals(bareName);
                break;

            case NameStrategy.Dashes:
                parts = SplitNameByDelimiter(bareName, "-");
                break;

            case NameStrategy.Underscores:
                parts = SplitNameByDelimiter(bareName, "_");
                break;
            }
        }
Example #3
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);
         }
     }
 }
Example #4
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 batchModifyDirectoryName(String nameOrReplace, String contactStr, int startNumber, NameStrategy strategy, FileAttributes dirAttr)
 {
     for (int i = 0; i < childDirs.Length; i++)
     {
         if ((childDirs[i].Attributes & dirAttr) == 0)
         {
             if (strategy == NameStrategy.IncreaseAtTail)
             {
                 ModifyDirectoryName(childDirs[i], nameOrReplace + contactStr + startNumber);
             }
             else if (strategy == NameStrategy.IncreaseAtMiddle)
             {
                 ModifyDirectoryName(childDirs[i], nameOrReplace + startNumber + contactStr);
             }
             else if (strategy == NameStrategy.IncreaseAtHead)
             {
                 ModifyDirectoryName(childDirs[i], startNumber + contactStr + nameOrReplace);
             }
             else if (strategy == NameStrategy.CutStrAtCharForIncHead)
             {
                 int index = childDirs[i].Name.IndexOf(nameOrReplace);
                 if (index == -1)
                 {
                     ModifyDirectoryName(childDirs[i], startNumber + childDirs[i].Name);
                 }
                 else
                 {
                     ModifyDirectoryName(childDirs[i], startNumber + childDirs[i].Name.Substring(index));
                 }
             }
             else if (strategy == NameStrategy.CutStrAtCharForIncTail)
             {
                 int index = childDirs[i].Name.IndexOf(nameOrReplace);
                 if (index == -1)
                 {
                     ModifyDirectoryName(childDirs[i], childDirs[i].Name + startNumber);
                 }
                 else
                 {
                     index += nameOrReplace.Length;
                     ModifyDirectoryName(childDirs[i], childDirs[i].Name.Substring(0, index) + startNumber);
                 }
             }
             else
             {
                 System.Console.WriteLine("非法策略......");
             }
             startNumber++;
         }
     }
 }
Example #5
0
 /// <summary>
 /// 批量创建指定目录名的目录
 /// </summary>
 /// <param name="realName"></param>
 /// <param name="contact"></param>
 /// <param name="startNumber"></param>
 /// <param name="strategy"></param>
 /// <param name="attr"></param>
 public void batchCreateDirectories(String realName, String contact, int startNumber, int number, NameStrategy strategy, FileAttributes attr)
 {
     if (strategy == NameStrategy.IncreaseAtTail)
     {
         for (int i = 0; i < number; i++)
         {
             String        dirName = realName + contact + (startNumber + i);
             DirectoryInfo dire    = new DirectoryInfo(dir.FullName + "/" + dirName);
             if (dire.Exists)
             {
                 System.Console.WriteLine("异常:文件夹[" + dire.FullName + "]已经存在,未创建新文件夹");
                 continue;
             }
             dire.Create();
             System.Console.WriteLine("正在创建[" + dirName + "]文件夹");
             dire.Attributes = attr;
         }
     }
     else if (strategy == NameStrategy.IncreaseAtMiddle)
     {
         for (int i = 0; i < number; i++)
         {
             String        dirName = realName + (startNumber + i) + contact;
             DirectoryInfo dire    = new DirectoryInfo(dir.FullName + "/" + dirName);
             if (dire.Exists)
             {
                 System.Console.WriteLine("异常:文件夹[" + dire.FullName + "]已经存在,未创建新文件夹");
                 continue;
             }
             dire.Create();
             System.Console.WriteLine("正在创建[" + dirName + "]文件夹");
             dire.Attributes = attr;
         }
     }
     else if (strategy == NameStrategy.IncreaseAtHead)
     {
         for (int i = 0; i < number; i++)
         {
             String        dirName = (startNumber + i) + contact + realName;
             DirectoryInfo dire    = new DirectoryInfo(dir.FullName + "/" + dirName);
             if (dire.Exists)
             {
                 System.Console.WriteLine("异常:文件夹[" + dire.FullName + "]已经存在,未创建新文件夹");
                 continue;
             }
             dire.Create();
             System.Console.WriteLine("正在创建[" + dirName + "]文件夹");
             dire.Attributes = attr;
         }
     }
     else
     {
         System.Console.WriteLine("非法策略....");
     }
 }
Example #6
0
 /// <summary>
 /// 批量创建制定文件名的文件,指定属性、文件数量,扩展名绪指定点号
 /// </summary>
 /// <param name="realName"></param>
 /// <param name="contact"></param>
 /// <param name="startNumber"></param>
 /// <param name="strategy"></param>
 /// <param name="attr"></param>
 public void batchCreateFiles(String realName, String contact, int startNumber, String extName, String append, int number, NameStrategy strategy, FileAttributes attr)
 {
     if (strategy == NameStrategy.IncreaseAtTail)
     {
         for (int i = 0; i < number; i++)
         {
             String   fileName = realName + contact + (startNumber + i) + extName;
             FileInfo file     = new FileInfo(dir.FullName + "/" + fileName);
             if (file.Exists)
             {
                 System.Console.WriteLine("异常:文件[" + file.FullName + "]已经存在,未创建新文件");
                 continue;
             }
             FileStream stream = file.Create();
             System.Console.WriteLine("正在创建[" + fileName + "]文件");
             stream.Close();
             if (!append.Equals(""))
             {
                 StreamWriter write = file.AppendText();
                 write.Write(append);
                 write.Dispose();
                 write.Close();
             }
             file.Attributes = attr;
         }
     }
     else if (strategy == NameStrategy.IncreaseAtMiddle)
     {
         for (int i = 0; i < number; i++)
         {
             String   fileName = realName + (startNumber + i) + contact + extName;
             FileInfo file     = new FileInfo(dir.FullName + "/" + fileName);
             if (file.Exists)
             {
                 System.Console.WriteLine("异常:文件[" + file.FullName + "]已经存在,未创建新文件");
                 continue;
             }
             FileStream stream = file.Create();
             System.Console.WriteLine("正在创建[" + fileName + "]文件");
             stream.Close();
             if (!append.Equals(""))
             {
                 StreamWriter write = file.AppendText();
                 write.Write(append);
                 write.Dispose();
                 write.Close();
             }
             file.Attributes = attr;
         }
     }
     else if (strategy == NameStrategy.IncreaseAtHead)
     {
         for (int i = 0; i < number; i++)
         {
             String   fileName = (startNumber + i) + contact + realName + extName;
             FileInfo file     = new FileInfo(dir.FullName + "/" + fileName);
             if (file.Exists)
             {
                 System.Console.WriteLine("异常:文件[" + file.FullName + "]已经存在,未创建新文件");
                 continue;
             }
             FileStream stream = file.Create();
             System.Console.WriteLine("正在创建[" + fileName + "]文件");
             stream.Close();
             if (!append.Equals(""))
             {
                 StreamWriter write = file.AppendText();
                 write.Write(append);
                 write.Dispose();
                 write.Close();
             }
             file.Attributes = attr;
         }
     }
     else
     {
         System.Console.WriteLine("非法策略....");
     }
 }
Example #7
0
 /// <summary>
 /// 批量修改文件的全名,排除指定属性
 /// </summary>
 /// <param name="nameOrReplace"></param>
 /// <param name="contactStr"></param>
 /// <param name="startNumber"></param>
 /// <param name="strategy"></param>
 /// <param name="attr"></param>
 public void batchModifyFileName(String nameOrReplace, String contactStr, int startNumber, NameStrategy strategy, FileAttributes attr)
 {
     if (nameOrReplace == null)
     {
         return;
     }
     for (int i = 0; i < childFiles.Length; i++)
     {
         if ((childFiles[i].Attributes & attr) == 0)
         {
             FileFunction file = new FileFunction(childFiles[i]);
             if (strategy == NameStrategy.IncreaseAtHead)
             {
                 file.ModifyName(startNumber + contactStr + nameOrReplace);
             }
             else if (strategy == NameStrategy.IncreaseAtMiddle)
             {
                 file.ModifyName(nameOrReplace + startNumber + contactStr);
             }
             else if (strategy == NameStrategy.IncreaseAtTail)
             {
                 file.ModifyName(nameOrReplace + contactStr + startNumber);
             }
             else if (strategy == NameStrategy.CutStrAtCharForIncHead)
             {
                 int index = file.FileName.IndexOf(nameOrReplace);
                 if (index == -1)
                 {
                     file.ModifyName(startNumber + file.FileName);
                 }
                 else
                 {
                     file.ModifyName(startNumber + file.FileName.Substring(index));
                 }
             }
             else if (strategy == NameStrategy.CutStrAtCharForIncTail)
             {
                 int index = file.FileName.IndexOf(nameOrReplace);
                 if (index == -1)
                 {
                     file.ModifyName(file.FileName + startNumber);
                 }
                 else
                 {
                     index += nameOrReplace.Length;
                     file.ModifyName(file.FileName.Substring(0, index) + startNumber);
                 }
             }
             startNumber++;
         }
     }
 }
Example #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);
         }
     }
 }
Example #9
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);
            }
        }