删除文件夹
/// <summary>
/// 删除文件夹
/// </summary>
/// <param name="dir"></param>
public static void DeleteFolder(string dir)
{
foreach (string d in Directory.GetFileSystemEntries(dir))
{
if (File.Exists(d))
{
FileInfo fi = new FileInfo(d);
if (fi.Attributes.ToString().IndexOf("ReadOnly") != -1)
{
fi.Attributes = FileAttributes.Normal;
}
//直接删除其中的文件
File.Delete(d);
}
else
{
//递归删除子文件夹
DeleteFolder(d);
}
}
DirectoryInfo di = new DirectoryInfo(dir);
if (di.Attributes.ToString().IndexOf("ReadOnly") != -1)
{
di.Attributes = FileAttributes.Normal;
}
//删除已空文件夹
Directory.Delete(dir);
}
拷贝文件夹
/// <summary>
/// Copy文件夹
/// </summary>
/// <param name="sPath">源文件夹路径</param>
/// <param name="dPath">目的文件夹路径</param>
/// <returns>完成状态:success-完成;其他-报错</returns>
public static string CopyFolder(string sPath, string dPath)
{
string flag = "success";
try
{
// 创建目的文件夹
if (!Directory.Exists(dPath))
{
Directory.CreateDirectory (dPath);
}
// 拷贝文件
DirectoryInfo sDir = new DirectoryInfo(sPath);
FileInfo[] fileArray = sDir.GetFiles();
foreach (FileInfo file in fileArray)
{
file.CopyTo(dPath + "\\" + file.Name, true);
}
// 循环子文件夹
DirectoryInfo dDir = new DirectoryInfo(dPath);
DirectoryInfo[] subDirArray = sDir.GetDirectories();
foreach (DirectoryInfo subDir in subDirArray)
{
CopyFolder(subDir.FullName, dPath + "//" + subDir.Name);
}
}
catch (Exception ex)
{
flag = ex.ToString();
}
return flag;
}