C# 文件操作类

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;
       }
       
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值