将文件转换成二进制,再由二进制转换成文件

来源:互联网 发布:unity3d导出fbx插件 编辑:程序博客网 时间:2024/05/29 15:33

//首先引入命名空间

using System.IO;

    protected void Page_Load(object sender, EventArgs e)    {//调用以下两个方法进行转换        string fileBinary = FileToBinary(@"E:\1.png");        //调用FileToBinary方法将传进来的文件转换成字符串        BinaryToFile(Server.MapPath("~/2.png"), fileBinary);        //调用BinaryToFile方法将字符串再转换成文件    }    /// <summary>    /// 将传进来的文件转换成字符串    /// </summary>    /// <param name="FilePath">待处理的文件路径(本地或服务器)</param>    /// <returns></returns>    public string FileToBinary(string FilePath)    {        FileStream fs = new FileStream(FilePath, FileMode.Open, FileAccess.Read);        //利用新传来的路径实例化一个FileStream对像        int fileLength = Convert.ToInt32(fs.Length);        //得到对像大小        byte[] fileByteArray = new byte[fileLength];        //声明一个byte数组        BinaryReader br = new BinaryReader(fs);        //声明一个读取二进流的BinaryReader对像        for (int i = 0; i < fileLength; i++)        {//循环数组            br.Read(fileByteArray, 0, fileLength);            //将数据读取出来放在数组中        }        string strData = Convert.ToBase64String(fileByteArray);        //装数组转换为String字符串        return strData;    }    /// <summary>    /// 装传进来的字符串保存为文件    /// </summary>    /// <param name="path">需要保存的位置路径</param>    /// <param name="binary">需要转换的字符串</param>    public void BinaryToFile(string path, string binary)    {        FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write);        //利用新传来的路径实例化一个FileStream对像        BinaryWriter bw = new BinaryWriter(fs);        //实例化一个用于写的BinaryWriter        bw.Write(Convert.FromBase64String(binary));        bw.Close();        fs.Close();    }