using System; using System.Collections.Generic; using System.Text; using System.IO; namespace yourNamespace { class FileControl { #region 删除文件或文件夹 /// <summary> /// 删除指定目录以及该目录下所有文件 /// </summary> /// <param name="dir">欲删除文件或者目录的路径</param> public static bool Clean(string dir) { try { CleanFiles(dir);//第一次删除文件 CleanFiles(dir);//第二次删除目录 return true; } catch { return false; } } private static void CleanFiles(string dir) { if (!Directory.Exists(dir)) { File.Delete(dir); return; } else { string[] dirs = Directory.GetDirectories(dir); string[] files = Directory.GetFiles(dir); if (0 != dirs.Length) { foreach (string subDir in dirs) { if (null == Directory.GetFiles(subDir)) { Directory.Delete(subDir); return; } else CleanFiles(subDir); } } if (0 != files.Length) { foreach (string file in files) { File.Delete(file); } } else Directory.Delete(dir); } } #endregion #region 建立指定文件夹 /// <summary> /// 建立指定文件夹 /// </summary> /// <param name="path"></param> public static bool makeDir(string path) { try { Directory.CreateDirectory(path); return true; } catch //(Exception ex) { //MessageBox.Show(ex.Message.ToString()); return false; } } #endregion #region 文件复制 /// <summary> /// /// </summary> /// <param name="old_file">源文件夹</param> /// <param name="new_file">目的文件夹</param> public static bool Copy(string old_file, string new_file) { DirectoryInfo dir = new DirectoryInfo(old_file); try { CopyDirectorysAndFiles(new_file, dir); return true; } catch //(Exception ex) { // MessageBox.Show(ex.Message.ToString()); return false; } } private static void CopyDirectorysAndFiles(string dest, DirectoryInfo srcdir) { if (dest.LastIndexOf('//') != (dest.Length - 1)) { dest += "//"; } // string destPath = dest + srcdir.Name + "//";//连同文件夹拷贝 string destPath = dest + "//"; if (!Directory.Exists(destPath)) { Directory.CreateDirectory(destPath); } FileInfo[] files = srcdir.GetFiles(); foreach (FileInfo file in files) { file.CopyTo(destPath + file.Name, true); } DirectoryInfo[] dirs = srcdir.GetDirectories(); foreach (DirectoryInfo dirInfo in dirs) { CopyDirectorysAndFiles(destPath, dirInfo); } } #endregion #region 判断文件是否存在 public static bool fileExists(string path) { FileInfo info = new FileInfo(path); if (info.Exists) { return true; } else { return false; } } #endregion #region 获取文件大小 public static long getFlieLen(string path) { long length = 0; DirectoryInfo di = new DirectoryInfo(path); FileInfo[] fiArr = di.GetFiles(); foreach (FileInfo f in fiArr) length += f.Length; return length; } #endregion } }