/// <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); }
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; } }
/// <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); } } }
/// <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++; } } }
/// <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("非法策略...."); } }
/// <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("非法策略...."); } }
/// <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++; } } }
/// <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); } } }
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); } }