using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
namespace ShadowEditor.Server.Helpers
{
///
/// 目录帮助类
///
public class DirectoryHelper
{
///
/// 复制文件夹及内容
///
///
///
///
public static void Copy(string sourceDirName, string destDirName)
{
// 检查目标目录是否以目录分割字符结束如果不是则添加
if (!destDirName.EndsWith(Path.DirectorySeparatorChar.ToString()))
{
destDirName += Path.DirectorySeparatorChar;
}
// 判断目标目录是否存在如果不存在则新建
if (!Directory.Exists(destDirName))
{
Directory.CreateDirectory(destDirName);
}
// 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
// 如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法
// string[] fileList = Directory.GetFiles(srcPath);
var fileList = Directory.GetFileSystemEntries(sourceDirName);
// 遍历所有的文件和目录
foreach (var file in fileList)
{
// 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
if (Directory.Exists(file))
{
Copy(file, destDirName + Path.GetFileName(file));
}
else // 否则直接Copy文件
{
File.Copy(file, destDirName + Path.GetFileName(file), true);
}
}
}
///
/// 移除某个路径下的空文件夹
///
///
public static void RemoveEmptyDir(string path)
{
if (!Directory.Exists(path))
{
return;
}
var directories = Directory.GetDirectories(path);
var files = Directory.GetFiles(path);
if (directories.Length + files.Length == 0)
{
Directory.Delete(path);
return;
}
foreach (var i in directories)
{
RemoveEmptyDir(i);
}
}
}
}