#region 将文件保存到本地 /// <summary> /// 将文件保存到本地 /// </summary> /// <param name="psContent">文件的二进制数据字符串</param> /// <param name="psFileName">文件名称,必须带后缀</param> private void SaveFile(string psContent, string psFileName) { byte[] accessory = Convert.FromBase64String(psContent); //System.AppDomain.CurrentDomain.BaseDirectory获取程序的基目录 string vsAccessoryPath = System.AppDomain.CurrentDomain.BaseDirectory.TrimEnd('\\') + '\\' + psFileName; FileStream fileStream = null; try { //File.Create Method (String):Creates or overwrites a file in the specified path. fileStream = File.Create(vsAccessoryPath); } catch (System.IO.IOException e) { } //FileStream.Write Method:Writes a block of bytes to the file stream. fileStream.Write(accessory, 0, accessory.Length); //FileStream.Flush 方法:清除该流的所有缓冲区,使得所有缓冲的数据都被写入到基础设备。 fileStream.Flush(); //FileStream.Close Method:Closes the file and releases any resources associated with the current file stream. fileStream.Close(); } #endregion
假如文件流保存在数据库中:
string vsSql = "";//从数据库中获取待转换保存文件的内容(比如,之前把文件转换为字节流保存到数据库中了) DataSet dsContent = 获取DataSet的数据库操作; byte[] vbContent = (byte[])(dsContent.Tables[0].Rows[0]["数据库中保存文件内容的列名"]); string vsContent = Convert.ToBase64String(vbContent);
字节流保存在数据库中的样子: