C# 如何重命名(无视是否只读、等文件侠属性)文件侠,与操作
来源:互联网 发布:阿里云slb负载均衡 编辑:程序博客网 时间:2024/05/22 16:56
源代码:
using System;using System.Collections.Generic;using System.Text;using System.IO;using System.Reflection;using System.Security.AccessControl;using System.Security.Principal;namespace packagehandler{class Program{static void Main(string[] args){//foreach (string arg in args){// Console.WriteLine(arg);//}Dictionary<string, bool> cmdsKey = new Dictionary<string, bool>();Dictionary<string, string> cmds = new Dictionary<string, string>();cmdsKey["-i"] = true;cmdsKey["-o"] = true;cmds["-i"] = @"c:\11000";for (int i = 0; i < args.Length; i++){string arg = args[i];if ((args.Length - i) < 2) continue;if (cmdsKey[arg.ToLower()]) cmds[arg.ToLower()] = args[(++i)];}if (!cmds.ContainsKey("-i")){Console.WriteLine("-i cmd no found~");Console.WriteLine("ef:");Console.WriteLine("package.exe -i inputPath [-o outputPath]");Console.WriteLine("press any key to exit");Console.Read();return;}string inputPath = cmds["-i"];string outputPath;if (!cmds.ContainsKey("-o")){outputPath = inputPath + "_o";cmds["-o"] = outputPath;}else{outputPath = cmds["-o"];}foreach (KeyValuePair<string, string> var in cmds){Console.WriteLine(var.Key + ":" + cmds[var.Key]);}Dictionary<string, object> nameMap = new Dictionary<string, object>();nameMap["attack1"] = "1";nameMap["attack2"] = "2";nameMap["attacked"] = "3";nameMap["defend"] = "4";nameMap["ready"] = "5";nameMap["run"] = "6";ReplaceDirsNameHandler replaceDirsNameCallback = delegate(string path,ReplaceDirsNameHandler loop){string[] dirStrArr = Directory.GetDirectories(path);foreach (string dir in dirStrArr){if (Directory.Exists(dir)){DirectoryInfo di = new DirectoryInfo(dir);//looploop(di.FullName, loop);//Console.WriteLine(di.Name);//不存在名称map里if (!nameMap.ContainsKey(di.Name)) continue;string newpath = outputPath + "\\" + di.Parent.Name + "\\";string newName = newpath + nameMap[di.Name];//if (!Directory.Exists(newpath)) Directory.CreateDirectory(newpath);//重命名di.MoveTo(newName);}}};Directory.Delete(outputPath, true);CopyDir(inputPath, outputPath);replaceDirsNameCallback(outputPath, replaceDirsNameCallback);Console.WriteLine("dirs name replace complete!");Console.Read();}static bool CopyDir(string srcPath, string aimPath){try{// 检查目标目录是否以目录分割字符结束如果不是则添加之if (aimPath[aimPath.Length - 1] != Path.DirectorySeparatorChar)aimPath += Path.DirectorySeparatorChar;// 判断目标目录是否存在如果不存在则新建之if (!Directory.Exists(aimPath))Directory.CreateDirectory(aimPath);// 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组// 如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法string[] fileList = Directory.GetFileSystemEntries(srcPath);// 遍历所有的文件和目录foreach (string file in fileList){// 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件if (Directory.Exists(file)){CopyDir(file, aimPath + Path.GetFileName(file));}// 否则直接Copy文件else{File.Copy(file, aimPath + Path.GetFileName(file), true);}}return true;}catch{return false;}} internal delegate void ReplaceDirsNameHandler(string path,ReplaceDirsNameHandler loop);}}
- C# 如何重命名(无视是否只读、等文件侠属性)文件侠,与操作
- C# 操作只读文件
- c#判断文件是否为只读,并修改为只读
- C# 更改文件只读属性 - [C#]
- C#复制文件、设置隐藏,只读属性
- c#中如何删除只读文件
- linux文件只读属性
- 文件的重命名与移动操作
- C#删除只读文件
- nodejs 文件与文件操作(读写文件 删除 重命名)
- C# 文件重命名
- C# 批量重命名文件
- C# 文件重命名
- C#文件重命名
- C# 文件重命名
- C# 文件重命名
- C# 文件重命名
- c#重命名文件
- OAuth认证
- 打表递推poj2081
- Hibernate generator 详解
- js window.onload 加载多个函数和追加函数
- jquery tab 水平tab分页
- C# 如何重命名(无视是否只读、等文件侠属性)文件侠,与操作
- MFC中全局变量的定义及使用
- WebServices身份认证
- Visual AssistX 安装
- GridView表头固定,表体滚动效果
- 算法导论 习题 15.4.3
- linux常用命令
- Ubuntu中更改文件权限
- Linux 查看java进程简单说明