最近两天使用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();
}
}
}
}

 

posted on 2013-10-23 17:43  千叶景枫  阅读(4950)  评论(0编辑  收藏  举报