首页 > 代码库 > 文件重命名(递归)
文件重命名(递归)
假设需要写入日志文件,但是不希望日志文件太大影响程序性能,这时需要将原文件重命名
//判断文件是否大于10M //取得文件大小 if (File.Exists(logpath)) { FileInfo MyFileInfo = new FileInfo(logpath); float MyFileSize = (float)MyFileInfo.Length / (1024 * 1024); if (MyFileSize > 10) { //将原文件重命名 RenameLog(logpath); } } //递归重命名 private static void RenameLog(string logpath) { string curPath = System.IO.Path.GetDirectoryName(logpath);//"d:\ffff\fwww" string curName = System.IO.Path.GetFileNameWithoutExtension(logpath);//errorlog.txt string curExt = System.IO.Path.GetExtension(logpath);//.txt // 新文件名 int nextNum = 1; string newStr = ""; try { //判断存不存在下一个文件,如果存在就递归 nextNum = GetPathNum(logpath) + 1; newStr = curPath + "\\" + RemoveNum(curName) + "_" + nextNum + curExt; if (File.Exists(newStr)) { RenameLog(newStr); } } catch { newStr = curPath + "\\" + curName + "_" + Guid.NewGuid() + curExt; } // 改名方法 FileInfo fi = new FileInfo(logpath); fi.MoveTo(Path.Combine(newStr)); } private static int GetPathNum(string pathorname) { try { string curname = System.IO.Path.GetFileNameWithoutExtension(pathorname); if (!curname.Contains(‘_‘)) { return 0; } return int.Parse(curname.Split(‘_‘)[curname.Split(‘_‘).Count() - 1]); } catch { return 0; } } //去除名称后的数字号 private static string RemoveNum(string name) { try { if (!name.Contains(‘_‘)) { return name; } return name.Substring(0, name.Length - (name.Split(‘_‘)[name.Split(‘_‘).Count() - 1].Length + 1)); } catch { return name; } }
效果:
文件重命名(递归)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。