namespace OASystem.API.OAMethodLib { public class IOOperatorHelper { /// /// 写文件(覆盖) /// /// /// /// /// public string Write_CoverFile(string content, string dir, string fileName) { if (!System.IO.Directory.Exists(dir)) System.IO.Directory.CreateDirectory(dir); //该路径不存在时,在当前文件目录下创建文件夹"导出.." //不存在该文件时先创建 String filePath = dir + fileName; System.IO.StreamWriter file1 = new System.IO.StreamWriter(filePath, false); //文件已覆盖方式添加内容 file1.Write(content); //保存数据到文件 file1.Close(); //关闭文件 file1.Dispose(); //释放对象 return filePath; } public string Read(string filePath) { string result = string.Empty; try { // 读取文本文件 using (StreamReader sr = new StreamReader(filePath)) { string line; // ReadLine()一行一行的循环读取 //当然可以直接ReadToEnd()读到最后 while ((line = sr.ReadLine()) != null) { result += line; } } } catch (Exception e) { } result = JsonConvert.DeserializeObject(result); return result; } /// /// 移动文件 /// /// /// /// public void MoveFile(string sourceFileFullPath, string RecycleBinPath) { //移动文件 if (!string.IsNullOrEmpty(sourceFileFullPath) && System.IO.File.Exists(sourceFileFullPath)) { string fileName = Path.GetFileName(sourceFileFullPath); System.IO.File.Move(sourceFileFullPath, RecycleBinPath + fileName); } } /// /// 将byte[]数组保存成文件 /// /// byte[]数组 /// 保存至硬盘的文件路径 /// public bool ByteToFile(byte[] byteArray, string fileName) { bool result = false; try { using (FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.Write)) { fs.Write(byteArray, 0, byteArray.Length); result = true; } } catch { result = false; } return result; } /// /// ZipStream 压缩 /// /// Dictionary(string, Stream) 文件名和Stream /// public byte[] ConvertZipStream(Dictionary streams) { byte[] buffer = new byte[6500]; MemoryStream returnStream = new MemoryStream(); var zipMs = new MemoryStream(); using (ICSharpCode.SharpZipLib.Zip.ZipOutputStream zipStream = new ICSharpCode.SharpZipLib.Zip.ZipOutputStream(zipMs)) { zipStream.SetLevel(9);//设置 压缩等级 (9级 500KB 压缩成了96KB) foreach (var kv in streams) { string fileName = kv.Key; using (var streamInput = kv.Value) { ICSharpCode.SharpZipLib.Zip.ZipEntry zipEntry = new ICSharpCode.SharpZipLib.Zip.ZipEntry(fileName); zipEntry.IsUnicodeText = true; zipStream.PutNextEntry(zipEntry); while (true) { var readCount = streamInput.Read(buffer, 0, buffer.Length); if (readCount > 0) { zipStream.Write(buffer, 0, readCount); } else { break; } } zipStream.Flush(); } } zipStream.Finish(); zipMs.Position = 0; zipMs.CopyTo(returnStream, 5600); } returnStream.Position = 0; //Stream转Byte[] byte[] returnBytes = new byte[returnStream.Length]; returnStream.Read(returnBytes, 0, returnBytes.Length); returnStream.Seek(0, SeekOrigin.Begin); return returnBytes; } } }