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 != 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 != 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.Substring(strFiles.LastIndexOf("\\") + 1,strFiles.Length - strFiles.LastIndexOf("\\") - 1);//开始拷贝文件,true表示覆盖同名文件File.Copy(strFiles,strToPath +"\\"+ strFolderName +"\\"+ strFileName,true);
}//创建DirectoryInfo实例DirectoryInfo dirInfo =newDirectoryInfo(strFromPath);//取得源文件夹下的所有子文件夹名称DirectoryInfo[] ZiPath = dirInfo.GetDirectories();for(intj = 0;j < ZiPath.Length;j++)
{//获取所有子文件夹名stringstrZiPath = strFromPath +"\\"+ ZiPath.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
页:
[1]