总结的C#关于文件操作的类

总结的C#关于文件操作的类

直接上代码,粘到项目直接调用即可

using System;
using System.IO;
using System.IO.Compression;

namespace Test.models
{
    public static class OperationFile
    {
        /// <summary>
        /// 将指定文件转为byte数组
        /// </summary>
        /// <param name="filePath">要转换的文件路径</param>
        /// <returns></returns>
        public static byte[] FileToBytes(string filePath)
        {
            FileInfo fi = new FileInfo(filePath);
            byte[] buff = new byte[fi.Length];
            FileStream fs = fi.OpenRead();
            fs.Read(buff, 0, Convert.ToInt32(fs.Length));
            fs.Close();
            return buff;
        }

        /// <summary>
        /// 将byte数组转换为文件并保存到指定路径
        /// </summary>
        /// <param name="buff">byte数组</param>
        /// <param name="savepath">保存路径</param>
        public static void BytesToFile(byte[] buff, string savepath)
        {
            if (File.Exists(Path.GetFullPath(savepath)))
            {
                File.Delete(Path.GetFullPath(savepath));
            }
            FileStream fs = new FileStream(savepath, FileMode.CreateNew);
            BinaryWriter bw = new BinaryWriter(fs);
            bw.Write(buff, 0, buff.Length);
            bw.Close();
            fs.Close();
        }

        /// <summary>
        /// 将文件压缩到指定路径
        /// </summary>
        /// <param name="inputFilename">待压缩文件路径</param>
        /// <param name="outputFilename">压缩后的压缩包路径</param>
        public static void CreateFromDirectoryModel(string inputFilename, string outputFilename)
        {
            //new DirectoryInfo(outputFilename).Delete(true);
            if (File.Exists(Path.GetFullPath(outputFilename)))
            {
                File.Delete(Path.GetFullPath(outputFilename));
            }
            ZipFile.CreateFromDirectory(inputFilename, outputFilename);
        }

        /// <summary>
        /// 将压缩包解压到指定路径
        /// </summary>
        /// <param name="inputFilename">待解压文件路径</param>
        /// <param name="outputFilename">解压后文件保存的路径</param>
        public static void ExtractToDirectoryModel(string inputFilename, string outputFilename)
        {
            if (Directory.Exists(outputFilename))
            {
                new DirectoryInfo(outputFilename).Delete(true);
            }
            else
            {
                Directory.CreateDirectory(outputFilename);
            }
            ZipFile.ExtractToDirectory(inputFilename, outputFilename);
        }

        /// <summary>
        /// 删除指定文件夹及文件夹下所有文件
        /// </summary>
        /// <param name="srcPath"></param>
        public static void DelectDir(string srcPath)
        {
            try
            {
                DirectoryInfo dir = new DirectoryInfo(srcPath);
                FileSystemInfo[] fileinfo = dir.GetFileSystemInfos();  //返回目录中所有文件和子目录
                foreach (FileSystemInfo i in fileinfo)
                {
                    if (i is DirectoryInfo)            //判断是否文件夹
                    {
                        DirectoryInfo subdir = new DirectoryInfo(i.FullName);
                        subdir.Delete(true);          //删除子目录和文件
                    }
                    else
                    {
                        File.Delete(i.FullName);      //删除指定文件
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值