最近两天使用WebService开发访问不同服务器把文件存放在同一个服务器上,文件传输上用到对象、文件和二进制Byte[]数组互相转换,把代码贴出来分享下。
using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.IO; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; namespace WebDemo { public class Tools { /// <summary> /// 文件转换为二进制Byte[]格式 /// </summary> /// <param name="filePath">文件路径</param> /// <returns>二进制文件</returns> public static byte[] FileToByte(string filePath) { byte[] fileByte= File.ReadAllBytes(filePath); return fileByte; } /// <summary> /// 二进制Byte格式文件转换为文件并保存在指定路径 /// </summary> /// <param name="bytes">二进制文件</param> /// <param name="SavaPath">保存路径</param> /// <returns>转换结果</returns> public static bool ByteToFile(byte[] bytes,string SavaPath) { try { File.WriteAllBytes(SavaPath, fileByte); return true; } catch (Exception) { return false; } } /// <summary> /// 对象转换为二进制Byte[]类型 /// </summary> /// <param name="obj">转换的对象</param> /// <returns>二进制文件</returns> public static byte[] ObjectToByte(object obj) { MemoryStream stream = new MemoryStream(); IFormatter formatter = new BinaryFormatter(); try { formatter.Serialize(memory, obj); byte[] bytes = stream.GetBuffer(); return bytes; } catch (Exception) { return new byte[0]; } finally { stream.Close(); } } /// <summary> /// 二进制Byte[]类型转换为对象类型 /// </summary> /// <param name="bytes"></param> /// <returns></returns> public static object ByteToObject(byte[] bytes) { MemoryStream stream = new MemoryStream(bytes); IFormatter formatter = new BinaryFormatter(); try { object obj = formatter.Deserialize(stream); return obj; } catch (Exception) { } finally { stream.Close(); } } } }