本文收集C#对文件处理和各种场景,若有错漏欢迎来客补充。
一、将byte数组转换为文件并保存到指定地址
/// <summary>
/// 将byte数组转换为文件并保存到指定地址
/// </summary>
/// <param name="buff">byte数组</param>
/// <param name="savepath">保存地址</param>
public static void Bytes2File(byte[] buff, string savepath, string fileName)
{
try
{
//如果不存在就创建Enclosure文件夹
if (Directory.Exists(savepath + @"\Enclosure\") == false)
{
Directory.CreateDirectory(savepath + @"\Enclosure\");
}
if (System.IO.File.Exists(savepath + @"\Enclosure\" + fileName))
{
System.IO.File.Delete(savepath + @"\Enclosure\" + fileName);
}
FileStream fs = new FileStream(savepath + @"\Enclosure\" + fileName, FileMode.CreateNew);
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(buff, 0, buff.Length);
bw.Close();
fs.Close();
}
catch (Exception)
{
}
}
二、将文件转换成byte[]数组
/// 将文件转换成byte[]数组
/// </summary>
/// <param name="fileUrl">文件路径文件名称</param>
/// <returns>byte[]数组</returns>
public static byte[] FileToByte(string fileUrl)
{
try
{
using (FileStream fs = new FileStream(fileUrl, FileMode.Open, FileAccess.Read))
{
byte[] byteArray = new byte[fs.Length];
fs.Read(byteArray, 0, byteArray.Length);
return byteArray;
}
}
catch
{
return null;
}
}
三、根据文件下载地址转换成byte数组
public byte[] GetByteArray(string fileUrl)
{
byte[] bytes = new byte[] { };
try
{
HttpWebRequest expr_21 = WebRequest.Create(fileUrl) as HttpWebRequest;
expr_21.Method="GET";
using (HttpWebResponse httpWebResponse = (HttpWebResponse)expr_21.GetResponse())
{
using (Stream responseStream = httpWebResponse.GetResponseStream())
{
if (httpWebResponse.ContentType.ToLower().Contains("text/html"))
{
StreamReader expr_90 = new StreamReader(responseStream, Encoding.GetEncoding("utf-8"));
string msg = expr_90.ReadToEnd().ToString();
expr_90.Close();
}
else
{
MemoryStream memoryStream = new MemoryStream();
byte[] array = new byte[256];
for (int i = responseStream.Read(array, 0, array.Length); i > 0; i = responseStream.Read(array, 0, array.Length))
{
memoryStream.Write(array, 0, i);
}
byte[] data = memoryStream.ToArray();
memoryStream.Close();
bytes = data;
}
}
}
}
catch (Exception ex)
{
}
return bytes;
}