如何遍历目录下所有文件夹,并给文件夹改名? 如何遍历目录下所有文件夹,并给文件夹改名? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 估计又要用到WMI了,我用System.IO.DirectoryInfo试了下发现可以遍例但是不支持给文件夹改名. 这样主程序里写System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(@"d:\");if(di.Exists){ Info(di);}函数在这里private void Info(System.IO.DirectoryInfo di){ if(di.Exists) { System.IO.DirectoryInfo[] di_list = di.GetDirectories(); foreach(System.IO.DirectoryInfo di1 in di_list) { if(di1.Name.Trim().ToUpper()=="旧文件夹") { System.IO.DirectoryInfo di2 = new System.IO.DirectoryInfo(di.FullName+@"\新文件夹"); if(!di2.Exists) di2.Create(); System.IO.DirectoryInfo[] di1_list = di1.GetDirectories(); foreach(System.IO.DirectoryInfo di1_movelist in di1_list) { di1_movelist.MoveTo(di2.FullName); } } Info(di1); } }}但这个只是对目录有效,如果目录里还有文件,嘿嘿,还不行 写错了点,函数应该这样: private void Info(System.IO.DirectoryInfo di) { if(di.Exists) { System.IO.DirectoryInfo[] di_list = di.GetDirectories(); foreach(System.IO.DirectoryInfo di1 in di_list) { if(di1.Name.Trim().ToUpper()=="旧文件夹") { System.IO.DirectoryInfo di2 = new System.IO.DirectoryInfo(di.FullName+@"\新文件夹"); if(!di2.Exists) di2.Create(); System.IO.DirectoryInfo[] di1_list = di1.GetDirectories(); foreach(System.IO.DirectoryInfo di1_movelist in di1_list) { di1_movelist.MoveTo(di2.FullName); } di1.Delete(); } else { Info(di1); } } } } 这个是递归找文件的代码,俺自用的 private string GetFileName(string strFirstPath) { try { string strFullPath = ""; if(File.Exists(strFirstPath + "\\" + this.txtFileName.Text)) { strFullPath = strFirstPath + "\\" + this.txtFileName.Text; return strFullPath; } else if(Directory.GetDirectories(strFirstPath).Length != 0) {// string strGetFile = ""; string[] arrPath = Directory.GetDirectories(strFirstPath); foreach(string strSubDir in arrPath) { string strTmp = GetFileName(strSubDir); if( strTmp== "" ) { continue; } else { return strTmp; } } return ""; } else { return ""; } } catch(Exception ex) { MessageBox.Show(ex.Message); return "-1"; } C# 读文件问题 正则中 限定符 {x,y} 前没有任何内容。 截取字符串 急求批处理命令!!! 未能加载文件或程序 【200分】紧急求助高手,为何Remoting不能正常连接? 我想知道在C#中怎样同时查询多个数据库中的表。我是通过在前台添加一个数据库的信息,同时创建数据库和表 ComponentResourceManager的问题求助 数据写入到已有的pdf中的指定位置 OpenXml Word 添加title 这个项目不好做呀! winform的问题
但是不支持给文件夹改名.
主程序里写
System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(@"d:\");
if(di.Exists)
{
Info(di);
}函数在这里private void Info(System.IO.DirectoryInfo di)
{
if(di.Exists)
{
System.IO.DirectoryInfo[] di_list = di.GetDirectories();
foreach(System.IO.DirectoryInfo di1 in di_list)
{
if(di1.Name.Trim().ToUpper()=="旧文件夹")
{
System.IO.DirectoryInfo di2 = new System.IO.DirectoryInfo(di.FullName+@"\新文件夹");
if(!di2.Exists)
di2.Create();
System.IO.DirectoryInfo[] di1_list = di1.GetDirectories();
foreach(System.IO.DirectoryInfo di1_movelist in di1_list)
{
di1_movelist.MoveTo(di2.FullName);
}
}
Info(di1);
}
}
}
但这个只是对目录有效,如果目录里还有文件,嘿嘿,还不行
{
if(di.Exists)
{
System.IO.DirectoryInfo[] di_list = di.GetDirectories();
foreach(System.IO.DirectoryInfo di1 in di_list)
{
if(di1.Name.Trim().ToUpper()=="旧文件夹")
{
System.IO.DirectoryInfo di2 = new System.IO.DirectoryInfo(di.FullName+@"\新文件夹");
if(!di2.Exists)
di2.Create();
System.IO.DirectoryInfo[] di1_list = di1.GetDirectories();
foreach(System.IO.DirectoryInfo di1_movelist in di1_list)
{
di1_movelist.MoveTo(di2.FullName);
}
di1.Delete();
}
else
{
Info(di1);
}
}
}
}
private string GetFileName(string strFirstPath)
{
try
{
string strFullPath = "";
if(File.Exists(strFirstPath + "\\" + this.txtFileName.Text))
{
strFullPath = strFirstPath + "\\" + this.txtFileName.Text;
return strFullPath;
}
else if(Directory.GetDirectories(strFirstPath).Length != 0)
{
// string strGetFile = "";
string[] arrPath = Directory.GetDirectories(strFirstPath);
foreach(string strSubDir in arrPath)
{
string strTmp = GetFileName(strSubDir);
if( strTmp== "" )
{
continue;
}
else
{
return strTmp;
}
}
return "";
}
else
{
return "";
} }
catch(Exception ex)
{
MessageBox.Show(ex.Message);
return "-1";
}