我和.net

主要讲述Sharepoint以及OfficeSystem和在.net下的开发和应用

导航

利用递归重命名文件名

 

公司的工程文档的文件名中包含了很多类似于#号的符号,这种命名方法在操作系统中是合法的,但是上载到sps文档库中的时候就会出现问题,因此,我通过简单的代码将这些符号转换成全角的符号:

 

private void button2_Click(object sender, System.EventArgs e)

{

if (textBox1.Text=="")

{

MessageBox.Show("请选择相应的目录!");

 

}

else

{

MessageBox.Show(@"将替换该目录下所有文件名中的非法字符,包括:&  ^  %  $  #  @ 等!");

timer1.Enabled =true;

ListFiles(@textBox1.Text);

 

MessageBox.Show("更改的文件数为:" +m_nCounter.ToString()+"\r\n "+"文件清单请到日志文件中查阅:log.txt");

pBar1.Value=100;

timer1.Enabled=false;

 

}

 

 

 

}

private void RePlaceFileName(string OldFileName)

{

bool bFlag=false;

string newFileName=OldFileName;

if (OldFileName.IndexOf("#")>0 )

{

newFileName=OldFileName.Replace("#","#");

bFlag=true;

 

}

if (OldFileName.IndexOf("~")>0 )

{

newFileName=newFileName.Replace("~","~");

bFlag=true;

 

}

if (OldFileName.IndexOf("&")>0 )

{

newFileName=newFileName.Replace("&","&");

bFlag=true;

 

}

if (OldFileName.IndexOf("!")>0 )

{

newFileName=newFileName.Replace ("!","!");

bFlag=true;

 

}

if (OldFileName.IndexOf("@")>0 )

{

newFileName=newFileName.Replace ("@","@");

bFlag=true;

 

}

if (OldFileName.IndexOf("$")>0 )

{

newFileName=newFileName.Replace ("$","$");

bFlag=true;

}

if (OldFileName.IndexOf("%")>0 )

{

newFileName=newFileName.Replace ("%","%");

bFlag=true;

}

if (OldFileName.IndexOf("^")>0 )

{

newFileName=newFileName.Replace ("^","︿");

bFlag=true;

}

if (OldFileName.IndexOf("*")>0 )

{

newFileName=newFileName.Replace ("*","*");

bFlag=true;

}

 

if (OldFileName.IndexOf("(")>0 )

{

newFileName=newFileName.Replace ("(","(");

 

bFlag=true;

}

if (OldFileName.IndexOf(")")>0 )

{

 

newFileName=newFileName.Replace (")",")");

bFlag=true;

}

 

try

{

if (bFlag==true)

{

System.IO.File.Move(OldFileName,newFileName);

TextWriter w = File.AppendText("log.txt");

m_nCounter=m_nCounter+1;

 

Log(OldFileName+"::"+m_nCounter.ToString(),w);

 

//Log(str,w);

w.Close();

 

}

//

MessageBox.Show("OK");

}

catch(Exception ex)

{

MessageBox.Show(ex.Message );

}

}

 

private void ListFiles(string strPath)

{

 

try

{

//检查目录名称是否合法

strPath=RePlaceFolderName(strPath);

DirectoryInfo di = new DirectoryInfo(@strPath);

 

FileSystemInfo[] dirs = di.GetDirectories("*");

//列出当前目录的文件

FileInfo[] rootFiles=di.GetFiles();

foreach(FileInfo rootFile in rootFiles)

{

//MessageBox.Show(rootFile.FullName );

 

string str=rootFile.FullName.ToString();

RePlaceFileName(str);

 

 

}

 

//***********递归

foreach (DirectoryInfo diNext in dirs)

{

 

ListFiles(diNext.FullName );

}

}

catch (Exception ex)

{

MessageBox.Show ( ex.Message );

 

timer1.Enabled =false;

this.Close();

}

 

}

 

posted on 2005-08-25 09:53  皮皮  阅读(780)  评论(0编辑  收藏  举报