C# winform文件夹操作复制和删除
来源:互联网 发布:oracle数据库监听配置 编辑:程序博客网 时间:2024/06/10 21:58
首先需要添加命名空间:
using System.IO;
下面分别有2个删除方法:
/// <summary> /// 删除文件夹下所有文件 /// </summary> /// <param name="dir"></param> public void DeleteFolder(string dir) { //如果存在这个文件夹删除之 if (Directory.Exists(dir)) { foreach (string d in Directory.GetFileSystemEntries(dir)) { if (File.Exists(d)) File.Delete(d);//直接删除其中的文件 else DeleteFolder(d);//递归删除子文件夹 } Directory.Delete(dir); //删除已空文件夹 MessageBox.Show(dir + "文件夹删除成功"); } else //如果文件夹不存在则提示 MessageBox.Show(dir + "该文件夹不存在"); }
//======================================== //实现一个静态方法将指定文件夹下面的所有内容Detele //测试的时候要小心操作,删除之后无法恢复。 //======================================== public static void DeleteDir(string aimPath) { try { //检查目标目录是否以目录分割字符结束如果不是则添加之 if (aimPath[aimPath.Length - 1] != Path.DirectorySeparatorChar) aimPath += Path.DirectorySeparatorChar; //得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组 //如果你指向Delete目标文件下面的文件而不包含目录请使用下面的方法 //string[]fileList= Directory.GetFiles(aimPath); string[] fileList = Directory.GetFileSystemEntries(aimPath); //遍历所有的文件和目录 foreach (string file in fileList) { //先当作目录处理如果存在这个 //目录就递归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()); } }
下面是2个复制方法:
///拷贝文件夹(包括子文件夹)到指定文件夹下 ///源文件夹和目标文件夹均需绝对路径 ///格式:CopyFolder(源文件夹,目标文件夹) //---------------------------------------- //作者 14 //---------------------------------------- /// <summary> /// 拷贝文件夹(包括子文件夹)到指定文件夹下 /// 文件和文件夹分开复制,当是文件夹则递归复制 /// </summary> /// <param name="strFromPath">待复制地址</param> /// <param name="strToPath">目标地址</param> public static void CopyFolder(string strFromPath,string strToPath) { //如果源文件夹不存在,则创建 if (!Directory.Exists(strFromPath)) { Directory.CreateDirectory(strFromPath); } //取得要拷贝的文件夹名 string strFolderName = 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 (int i = 0; i < strFiles.Length; i++) { //取得拷贝的文件名,只取文件名,地址截掉。 string strFileName = 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 = new DirectoryInfo(strFromPath); //取得源文件夹下的所有子文件夹名称 DirectoryInfo[] ZiPath = dirInfo.GetDirectories(); for (int j = 0; j < ZiPath.Length; j++) { //获取所有子文件夹名 string strZiPath = strFromPath + "\\" + ZiPath[j].ToString(); //把得到的子文件夹当成新的 //源文件夹,从头开始新一轮的拷贝 CopyFolder( strZiPath, strToPath + "\\" + strFolderName); } }
//======================================== //实现一个静态方法将指定文件夹下面的所有 //内容copy到目标文件夹下面 //如果目标文件夹为只读属性就会报错 //======================================== public void CopyDir(string srcPath, string aimPath) { 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 (string file in fileList) { //先当作目录处理如果存在这个 //目录就递归Copy该目录下面的文件 if (Directory.Exists(file)) CopyDir( file, aimPath + Path.GetFileName(file)); //否则直接Copy文件 else File.Copy( file, aimPath + Path.GetFileName(file), true); } } catch (Exception e) { MessageBox.Show(e.ToString()); } }
上面说的删除方法,会把目录本身删了。
如下面这个地址:
string opath = @"C:\Documents and Settings\Administrator\桌面\211";
执行上面删除方法,会把C:\Documents and Settings\Administrator\桌面\211中的211这个文件夹也删了,如果不想删,就用下面这个方法,n等于1的时候就不删。
//======================================== //实现一个静态方法将指定文件夹下面的所有内容Detele //测试的时候要小心操作,删除之后无法恢复。 //======================================== public static void DeleteDir(string aimPath, int n) { try { //检查目标目录是否以目录分割字符结束如果不是则添加之 if (aimPath[aimPath.Length - 1] != Path.DirectorySeparatorChar) aimPath += Path.DirectorySeparatorChar; //得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组 //如果你指向Delete目标文件下面的文件而不包含目录请使用下面的方法 string[] fileList = Directory.GetFiles(aimPath); //string[] fileList = Directory.GetFileSystemEntries(aimPath); //遍历所有的文件和目录 foreach (string file in fileList) { //先当作目录处理如果存在这个 //目录就递归Delete该目录下面的文件 if (Directory.Exists(file)) { DeleteDir(aimPath + Path.GetFileName(file), n); } //否则直接Delete文件 else { File.Delete(aimPath + Path.GetFileName(file)); } } //删除文件夹 if (n == 1) { DirectoryInfo dirInfo = new DirectoryInfo(aimPath); //取得源文件夹下的所有子文件夹名称 DirectoryInfo[] ZiPath = dirInfo.GetDirectories(); for (int j = 0; j < ZiPath.Length; j++) { //获取子文件夹名 string strZiPath = aimPath + "\\" + ZiPath[j].ToString(); //删除当前文件夹 System.IO.Directory.Delete(strZiPath, true); } } else { System.IO.Directory.Delete(aimPath, true); } } catch (Exception e) { MessageBox.Show(e.ToString()); } }
查看原文>>>>
- C# winform文件夹操作复制和删除
- c#复制和删除文件夹
- C# 复制文件夹,删除文件夹
- 用C#操作文件/文件夹(删除,复制,移动)
- C#如何:复制、删除和移动文件和文件夹
- 文件夹的复制、删除操作
- C#复制文件夹,删除文件夹的方法
- C#复制文件夹,删除文件夹的方法
- 文件和文件夹操作(复制,剪切,删除)
- java文件和文件夹复制、删除、移动操作
- java文件和文件夹复制、删除、移动操作
- java文件和文件夹复制、删除、移动操作
- java文件和文件夹复制、删除、移动操作
- java文件和文件夹复制、删除、移动操作
- java文件和文件夹复制、删除、移动操作
- C# 复制文件夹的操作
- 复制和删除文件夹代码
- 文件夹的复制和删除
- JDK环境变量配置
- 关于平面设计师
- flex 动态chekbox
- java.lang.IllegalArgumentException: Document base C:\Program Files (x86)\Apache Software Foundation\
- Linux中通过命令直接删除文件中最后一行
- C# winform文件夹操作复制和删除
- 宝洁八问
- nginx配置xsendfile提升文件下载性能
- opencv 2.4 中如何更改Mat尺寸
- 构建SSH框架日志系统
- 3z 股票分析软件
- 硬盘内部硬件结构和工作原理详解
- 做个会说话会办事的人!
- TWITTER背后的开源技术