using System; using System.IO; namespace Utils{ public class IOHelper { public IOHelper(); public static bool CopyDir(DirectoryInfo fromDir, string toDir); // 复制目录 public static bool CopyDir( string fromDir, string toDir); // 复制目录 public static bool CreateDir( string dirName); // 创建目录 public static bool CreateFile( string fileName); // 创建文件 public static void DeleteDir(DirectoryInfo dir); // 删除目录 (如果目录中存在文件就删除) public static bool DeleteDir( string dir, bool onlyDir); // 删除目录 public static bool DeleteFile( string fileName); // 删除文件 public static bool Exists( string fileName); // 判断文件是否存在 public static bool FindFile(DirectoryInfo dir, string fileName); // 在指定的目录中查找文件 public static bool FindFile( string dir, string fileName); // 在指定的目录中查找文件 public static string Read( string fileName); // 读文件的全部内容 public static string ReadLine( string fileName); // 读第一行数据 public static bool Write( string fileName, string content); // 写入指定的内容 public static bool WriteLine( string fileName, string content); // 写一行数据 }} using System; using System.Text; using System.IO; /* ----------------------------------------------------------------//文件名:IOHelper//文件功能描述:文件操作类////创建人:陈太汉//创建日期:2011/05/18---------------------------------------------------------------- */ namespace Utils{ public class IOHelper { /// <summary> /// 判断文件是否存在 /// </summary> /// <param name="fileName"></param> /// <returns></returns> public static bool Exists( string fileName) { if (fileName == null || fileName.Trim() == "" ) { return false ; } if (File.Exists(fileName)) { return true ; } return false ; } /// <summary> /// 创建文件夹 /// </summary> /// <param name="dirName"></param> /// <returns></returns> public static bool CreateDir( string dirName) { if ( ! Directory.Exists(dirName)) { Directory.CreateDirectory(dirName); } return true ; } /// <summary> /// 创建文件 /// </summary> /// <param name="fileName"></param> /// <returns></returns> public static bool CreateFile( string fileName) { if ( ! File.Exists(fileName)) { FileStream fs = File.Create(fileName); fs.Close(); fs.Dispose(); } return true ; } /// <summary> /// 读文件内容 /// </summary> /// <param name="fileName"></param> /// <returns></returns> public static string Read( string fileName) { if ( ! Exists(fileName)) { return null ; } // 将文件信息读入流中 using (FileStream fs = new FileStream(fileName, FileMode.Open)) { return new StreamReader(fs).ReadToEnd(); } } public static string ReadLine( string fileName) { if ( ! Exists(fileName)) { return null ; } using (FileStream fs = new FileStream(fileName, FileMode.Open)) { return new StreamReader(fs).ReadLine(); } } /// <summary> /// 写文件 /// </summary> /// <param name="fileName"> 文件名 </param> /// <param name="content"> 文件内容 </param> /// <returns></returns> public static bool Write( string fileName, string content) { if ( ! Exists(fileName) || content == null ) { return false ; } // 将文件信息读入流中 using (FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate)) { lock (fs) // 锁住流 { if ( ! fs.CanWrite) { throw new System.Security.SecurityException( " 文件fileName= " + fileName + " 是只读文件不能写入! " ); } byte [] buffer = Encoding.Default.GetBytes(content); fs.Write(buffer, 0 , buffer.Length); return true ; } } } /// <summary> /// 写入一行 /// </summary> /// <param name="fileName"> 文件名 </param> /// <param name="content"> 内容 </param> /// <returns></returns> public static bool WriteLine( string fileName, string content) { using (FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate | FileMode.Append)) { lock (fs) { if ( ! fs.CanWrite) { throw new System.Security.SecurityException( " 文件fileName= " + fileName + " 是只读文件不能写入! " ); } StreamWriter sw = new StreamWriter(fs); sw.WriteLine(content); sw.Dispose(); sw.Close(); return true ; } } } public static bool CopyDir(DirectoryInfo fromDir, string toDir) { return CopyDir(fromDir, toDir, fromDir.FullName); } /// <summary> /// 复制目录 /// </summary> /// <param name="fromDir"> 被复制的目录 </param> /// <param name="toDir"> 复制到的目录 </param> /// <returns></returns> public static bool CopyDir( string fromDir, string toDir) { if (fromDir == null || toDir == null ) { throw new NullReferenceException( " 参数为空 " ); } if (fromDir == toDir) { throw new Exception( " 两个目录都是 " + fromDir); } if ( ! Directory.Exists(fromDir)) { throw new IOException( " 目录fromDir= " + fromDir + " 不存在 " ); } DirectoryInfo dir = new DirectoryInfo(fromDir); return CopyDir(dir, toDir, dir.FullName); } /// <summary> /// 复制目录 /// </summary> /// <param name="fromDir"> 被复制的目录 </param> /// <param name="toDir"> 复制到的目录 </param> /// <param name="rootDir"> 被复制的根目录 </param> /// <returns></returns> private static bool CopyDir(DirectoryInfo fromDir, string toDir, string rootDir) { string filePath = string .Empty; foreach (FileInfo f in fromDir.GetFiles()) { filePath = toDir + f.FullName.Substring(rootDir.Length); string newDir = filePath.Substring( 0 , filePath.LastIndexOf( " \\ " )); CreateDir(newDir); File.Copy(f.FullName, filePath, true ); } foreach (DirectoryInfo dir in fromDir.GetDirectories()) { CopyDir(dir, toDir, rootDir); } return true ; } /// <summary> /// 删除文件 /// </summary> /// <param name="fileName"> 文件的完整路径 </param> /// <returns></returns> public static bool DeleteFile( string fileName) { if (Exists(fileName)) { File.Delete(fileName); return true ; } return false ; } public static void DeleteDir(DirectoryInfo dir) { if (dir == null ) { throw new NullReferenceException( " 目录不存在 " ); } foreach (DirectoryInfo d in dir.GetDirectories()) { DeleteDir(d); } foreach (FileInfo f in dir.GetFiles()) { DeleteFile(f.FullName); } dir.Delete(); } /// <summary> /// 删除目录 /// </summary> /// <param name="dir"> 制定目录 </param> /// <param name="onlyDir"> 是否只删除目录 </param> /// <returns></returns> public static bool DeleteDir( string dir, bool onlyDir) { if (dir == null || dir.Trim() == "" ) { throw new NullReferenceException( " 目录dir= " + dir + " 不存在 " ); } if ( ! Directory.Exists(dir)) { return false ; } DirectoryInfo dirInfo = new DirectoryInfo(dir); if (dirInfo.GetFiles().Length == 0 && dirInfo.GetDirectories().Length == 0 ) { Directory.Delete(dir); return true ; } if ( ! onlyDir) { return false ; } else { DeleteDir(dirInfo); return true ; } } /// <summary> /// 在指定的目录中查找文件 /// </summary> /// <param name="dir"> 目录 </param> /// <param name="fileName"> 文件名 </param> /// <returns></returns> public static bool FindFile( string dir, string fileName) { if (dir == null || dir.Trim() == "" || fileName == null || fileName.Trim() == "" || ! Directory.Exists(dir)) { return false ; } DirectoryInfo dirInfo = new DirectoryInfo(dir); return FindFile(dirInfo, fileName); } public static bool FindFile(DirectoryInfo dir, string fileName) { foreach (DirectoryInfo d in dir.GetDirectories()) { if (File.Exists(d.FullName + " \\ " + fileName)) { return true ; } FindFile(d,fileName); } return false ; } }}