C#递归拷贝文件删除文件
拷贝文件及子文件,最后一个参数排除,哪个不要删除。(其实就是移动的效果)
//拷贝文件及子文件
public static void CopyDirectory(string src, string dest, string [] skips)
{
if (string.IsNullOrEmpty(src)) return;
CreateDirectoryIfNotExists(dest); //拷贝子文件
foreach (string file in Directory.GetFiles(src))
{
string fileName = Path.GetFileName(file);
bool bSkip = false;
if (skips != null)
{
foreach (string skip in skips)
{
if (fileName.Contains(skip))
{
bSkip = true;
break;
}
}
}
if (bSkip) continue;
try
{
System.IO.File.Copy(file, dest + "\\" + fileName, true);
}catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
}
//递归拷贝
foreach (string dir in Directory.GetDirectories(src))
{
string[] parts = dir.Split('\\');
string lastDirPart = parts[parts.Length - 1];
CopyDirectory(dir, dest + "\\" + lastDirPart, skips);
}
}
递归删除文件
public static void DeleteDirectory(string src, string[] skips)
{
if (string.IsNullOrEmpty(src)) return;
if (src.Length <= 10)
{
throw new Exception("文件路径小,删除请注意");
} //删除子文件
foreach (string file in Directory.GetFiles(src))
{
string fileName = Path.GetFileName(file);
bool bSkip = false;
if (skips != null)
{
foreach (string skip in skips)
{
if (fileName.Contains(skip))
{
bSkip = true;
break;
}
}
}
if (bSkip) continue;
try
{
File.Delete(file);
//File.SetAttributes(file, FileAttributes.Normal);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
} //递归删除
foreach (string dir in Directory.GetDirectories(src))
{
DeleteDirectory(dir, skips);
} //删除自己
if (skips == null)
{
Directory.Delete(src);
}
}
C#递归拷贝文件删除文件的更多相关文章
- C# 下载文件 删除文件 写入文本
		由于经常用到文件处理,便自己封装了下 分享给大家. 包含写入文本 批量删除文件 下载文件 .--可直接使用 /// <summary> /// 写入到txt /// </summ ... 
- php读取zip文件(删除文件,提取文件,增加文件)实例
		<?php /* php 从zip压缩文件中提取文件 */ $zip = new ZipArchive; if ($zip->open('jQuery五屏上下滚动焦点图代码.zip') = ... 
- Java——如何创建文件夹及文件,删除文件,文件夹
		package com.zz; import java.io.File; import java.io.IOException; /** * Java创建文件夹 */ public class Cre ... 
- SVN的搭建及使用(三)用TortoiseSVN修改文件,添加文件,删除文件,以及如何解决冲突,重新设置用户名和密码等
		添加文件 在检出的工作副本中添加一个Readme.txt文本文件,这时候这个文本文件会显示为没有版本控制的状态,如图: 这时候,你需要告知TortoiseSVN你的操作,如图: 加入以后,你的文件会变 ... 
- Python习题-列出目录下所有文件删除文件夹
		需求描述: 1.当前目录下有很多文件夹.文件,统计/usr/local/这个目录下,如果是文件夹,就给删除 /usr/local/ f1 w1 f2 w2 w3 w4 ... 
- [sharepoint]rest api文档库文件上传,下载,拷贝,剪切,删除文件,创建文件夹,修改文件夹属性,删除文件夹,获取文档列表
		写在前面 最近对文档库的知识点进行了整理,也就有了这篇文章,当时查找这些接口,并用在实践中,确实废了一些功夫,也为了让更多的人走更少的弯路. 系列文章 sharepoint环境安装过程中几点需要注意的 ... 
- java实现基于关键字的文件夹(文件)的搜索、文件夹(文件)的复制、删除
		最近在做一个项目,需要实现这几项功能,上网查了很多资料,自己研究了好几天终于实现了,现在与大家分享一下. 一.JAVA实现文件夹的搜索 在百度搜索N个技术文章,从哪些大牛们共享的资料中终于写出了我 ... 
- Qt删除文件夹
		写的软件需要进行文件夹的复制,开始不怎么懂就找了个拷贝文件夹的代码测试了一下,运行程序选择了源目录和目标目录相同进行拷贝,结果悲剧了.因为是递归拷贝,导致文件夹被嵌套N层,软件死机,强制结束后,产生的 ... 
- Linux学习笔记:rm删除文件和文件夹
		使用rm命令删除一个文件或者目录 使用rmdir可以删除空文件夹 参数: -i:删除前逐一询问确认 -f:即使原档案属性设为唯读,亦直接删除,无需逐一确认 -r:递归 删除文件可以直接使用rm命令,若 ... 
随机推荐
- Fusebox  类似WEBPACK 的工具,React Studio
			Fusebox 类似WEBPACK 的工具, http://fuse-box.org/ React Studio: https://hackernoon.com/@reactstudio 
- python zip文件压缩和解压
			压缩 import shutil zipOutputName = "1234" # 输出1234.zip fileType = "zip" # 文件类型zip ... 
- python3+requests库框架设计02-封装日志类
			首先我们先来实现日志的功能,日志可以使用python3自带logging模块,不会的可以百度一下相关文章,也可以看我另外一篇文章Python3学习笔记24-logging模块 在封装日志类前,我们需要 ... 
- SQL NOLOCK大杂烩
			今天碰到NOLOCK 的问题,就查阅了一些资料,做了相关了解:总结了比较经典,朴实的两篇在此. 电梯直达: SQL Server 中WITH (NOLOCK)浅析 文章本想大篇幅摘抄,因为担心链接失效 ... 
- 《The Practice and Theory of Bolshevism》的笔记-第114页
			章节名:International Policy 页码:第114页 2017-09-30 15:11:24 Among religions, Bolshevism is to be reckoned ... 
- jquery datetimepicker
			1.详细说明见:https://xdsoft.net/jqplugins/datetimepicker/ 语言选择中文,现在lang配置已经失效;可用: $.datetimepicker.setLoc ... 
- tcp和udp协议的聊天 和udp协议的时间同步机制-----编码
			tcp协议聊天 服务端:: 客户端 udp协议的聊天 ############ udp协议 ########### 服务器 import socket sk = socket.socket(type ... 
- [C]控制外部变量访问权限的extern和static关键字
			一.extern 概述 编译器是由上至下编译源文件的,当遇到一些函数引用外部全局变量,而这个变量被定义在该函数声明主体的下方,又或者引用自其它的编译单元,这个情况就需要extern来向编译器表明此变量 ... 
- Oracle PGA作用&work_mode
			专有模式下ORACLE会给每个连接分配一个服务进程(Server Process),这个服务进程将为这个连接服务.为这个服务进程分配的内存叫做PGA.PGA不需要Latch也不需要Lock,永远不会发 ... 
- 【进阶1-4期】JavaScript深入之带你走进内存机制(转)
			这是我在公众号(高级前端进阶)看到的文章,现在做笔记 https://mp.weixin.qq.com/s/yK4DPKhkmkiroasWJMrJcw 阅读笔记 JS内存空间分为栈(stack).堆 ... 
