首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#中惯用的经典文件操作方法

2012-12-27 
C#中常用的经典文件操作方法C#追加文件 StreamWriter sw File.AppendText(Server.MapPath(.)+\\myTex

C#中常用的经典文件操作方法

C#追加文件
StreamWriter sw = File.AppendText(Server.MapPath(".")+"\\myText.txt");
sw.WriteLine("追逐理想");
sw.WriteLine("kzlll");
sw.WriteLine(".NET笔记");
sw.Flush();
sw.Close();

C#拷贝文件stringOrignFile,NewFile;
rignFile = Server.MapPath(".")+"\\myText.txt";
NewFile = Server.MapPath(".")+"\\myTextCopy.txt";
File.Copy(OrignFile,NewFile,true);

C#删除文件stringdelFile = Server.MapPath(".")+"\\myTextCopy.txt";
File.Delete(delFile);

C#移动文件stringOrignFile,NewFile;
rignFile = Server.MapPath(".")+"\\myText.txt";
NewFile = Server.MapPath(".")+"\\myTextCopy.txt";
File.Move(OrignFile,NewFile);

C#创建目录// 创建目录c:\sixAgeDirectoryInfo d=Directory.CreateDirectory("c:\\sixAge");// d1指向c:\sixAge\sixAge1DirectoryInfo d1=d.CreateSubdirectory("sixAge1");// d2指向c:\sixAge\sixAge1\sixAge1_1DirectoryInfo d2=d1.CreateSubdirectory("sixAge1_1");// 将当前目录设为c:\sixAgeDirectory.SetCurrentDirectory("c:\\sixAge");// 创建目录c:\sixAge\sixAge2Directory.CreateDirectory("sixAge2");// 创建目录c:\sixAge\sixAge2\sixAge2_1Directory.CreateDirectory("sixAge2\\sixAge2_1");

递归删除文件夹及文件publicvoidDeleteFolder(stringdir)
{if(Directory.Exists(dir))//如果存在这个文件夹删除之{foreach(stringdinDirectory.GetFileSystemEntries(dir)) {if(File.Exists(d))
??????????????? File.Delete(d);//直接删除其中的文件elseDeleteFolder(d);//递归删除子文件夹}
??????? Directory.Delete(dir);//删除已空文件夹Response.Write(dir+" 文件夹删除成功");
??? }elseResponse.Write(dir+" 该文件夹不存在");//如果文件夹不存在则提示}protectedvoidPage_Load (Objectsender ,EventArgs e)
{stringDir="D:\\gbook\\11";
??? DeleteFolder(Dir);//调用函数删除文件夹}// ======================================================// 实现一个静态方法将指定文件夹下面的所有内容copy到目标文件夹下面// 如果目标文件夹为只读属性就会报错。// April 18April2005 In STU// ======================================================publicstaticvoidCopyDir(stringsrcPath,stringaimPath)
{try{// 检查目标目录是否以目录分割字符结束如果不是则添加之if(aimPath[aimPath.Length-1] != Path.DirectorySeparatorChar)
???? aimPath += Path.DirectorySeparatorChar;// 判断目标目录是否存在如果不存在则新建之if(!Directory.Exists(aimPath)) Directory.CreateDirectory(aimPath);// 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组// 如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法// string[] fileList = Directory.GetFiles(srcPath);string[] fileList = Directory.GetFileSystemEntries(srcPath);// 遍历所有的文件和目录foreach(stringfileinfileList)
??? {// 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件if(Directory.Exists(file))
????? CopyDir(file,aimPath+Path.GetFileName(file));// 否则直接Copy文件elseFile.Copy(file,aimPath+Path.GetFileName(file),true);
??? }
?? }catch(Exception e)
?? {
??? MessageBox.Show (e.ToString());
?? }
}// ======================================================// 实现一个静态方法将指定文件夹下面的所有内容Detele// 测试的时候要小心操作,删除之后无法恢复。// April 18April2005 In STU// ======================================================publicstaticvoidDeleteDir(stringaimPath)
{try{// 检查目标目录是否以目录分割字符结束如果不是则添加之if(aimPath[aimPath.Length-1] != Path.DirectorySeparatorChar)
???? aimPath += Path.DirectorySeparatorChar;// 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组// 如果你指向Delete目标文件下面的文件而不包含目录请使用下面的方法// string[] fileList = Directory.GetFiles(aimPath);string[] fileList = Directory.GetFileSystemEntries(aimPath);// 遍历所有的文件和目录foreach(stringfileinfileList)
??? {// 先当作目录处理如果存在这个目录就递归Delete该目录下面的文件if(Directory.Exists(file))
???? {
????? DeleteDir(aimPath+Path.GetFileName(file));
???? }// 否则直接Delete文件else{
????? File.Delete (aimPath+Path.GetFileName(file));
???? }
??? }//删除文件夹System.IO .Directory .Delete (aimPath,true);
?? }catch(Exception e)
?? {
??? MessageBox.Show (e.ToString());
?? }
}

需要引用命名空间:usingSystem.IO;publicstaticvoidCopyFolder(stringstrFromPath,stringstrToPath)
{//如果源文件夹不存在,则创建if(!Directory.Exists(strFromPath))
?? {???
??? Directory.CreateDirectory(strFromPath);
?? }//取得要拷贝的文件夹名stringstrFolderName = strFromPath.Substring(strFromPath.LastIndexOf("\") + 1,strFromPath.Length - strFromPath.LastIndexOf("\") - 1);//如果目标文件夹中没有源文件夹则在目标文件夹中创建源文件夹if(!Directory.Exists(strToPath +"\"+ strFolderName))
?? {???
??? Directory.CreateDirectory(strToPath +"\"+ strFolderName);
?? }//创建数组保存源文件夹下的文件名string[] strFiles = Directory.GetFiles(strFromPath);//循环拷贝文件for(inti = 0;i < strFiles.Length;i++)
?? {//取得拷贝的文件名,只取文件名,地址截掉。stringstrFileName = strFiles[i].Substring(strFiles[i].LastIndexOf("\") + 1,strFiles[i].Length - strFiles[i].LastIndexOf("\") - 1);//开始拷贝文件,true表示覆盖同名文件File.Copy(strFiles[i],strToPath +"\"+ strFolderName +"\"+ strFileName,true);
?? }//创建DirectoryInfo实例DirectoryInfo dirInfo =newDirectoryInfo(strFromPath);//取得源文件夹下的所有子文件夹名称DirectoryInfo[] ZiPath = dirInfo.GetDirectories();for(intj = 0;j < ZiPath.Length;j++)
?? {//获取所有子文件夹名stringstrZiPath = strFromPath +"\"+ ZiPath[j].ToString();//把得到的子文件夹当成新的源文件夹,从头开始新一轮的拷贝CopyFolder(strZiPath,strToPath +"\"+ strFolderName);
?? }
}

CreateDirectory方法方法的使用方法usingSystem;usingSystem.IO;classTest????
{publicstaticvoidMain()????
????????? {//?? Specify?? the?? directory?? you?? want?? to?? manipulate.stringpath?? =@"c:\MyDir";try{//?? Determine?? whether?? the?? directory?? exists.if(Directory.Exists(path))????
????????????????????????? {Console.WriteLine("That?? path?? exists?? already.");return;??
????????????????????????? }//?? Try?? to?? create?? the?? directory.DirectoryInfo?? di?? =?? Directory.CreateDirectory(path);Console.WriteLine("The?? directory?? was?? created?? successfully?? at?? {0}.",?? Directory.GetCreationTime(path));//?? Delete?? the?? directory.di.Delete();Console.WriteLine("The?? directory?? was?? deleted?? successfully.");??
????????????????? }catch(Exception?? e)????
????????????????? {Console.WriteLine("The?? process?? failed:?? {0}",?? e.ToString());??
????????????????? }finally{}??
????????? }??
}

?

http://space.itpub.net/12639172/viewspace-623291

热点排行