首页 / C# / C# 操作文件常用的方法
C# 操作文件常用的方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C# 操作文件常用的方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6497字,纯文字阅读大概需要10分钟。
内容图文
![C# 操作文件常用的方法](/upload/InfoBanner/zyjiaocheng/628/29f1c889f5aa4287ba947912aaf43f94.jpg)
/// <summary> /// 文件转byte[] /// </summary> /// <param name="Path">绝对路径</param> /// <returns>byte[]</returns> public static byte[] FileToBytes(string Path) { if (!System.IO.File.Exists(Path)) return new byte[0]; FileInfo fi = new FileInfo(Path); byte[] buff = new byte[fi.Length]; FileStream fs = fi.OpenRead(); fs.Read(buff, 0, Convert.ToInt32(fs.Length)); fs.Close(); return buff; } /// <summary> /// 文件转Base64 /// </summary> /// <param name="Path">绝对路径</param> /// <returns>Base64</returns> public static string FileToBase64(string Path) { if (!System.IO.File.Exists(Path)) return string.Empty; FileInfo fi = new FileInfo(Path); byte[] buff = new byte[fi.Length]; FileStream fs = fi.OpenRead(); fs.Read(buff, 0, Convert.ToInt32(fs.Length)); fs.Close(); return BytesToBase64(buff); } /// <summary> /// byte[]转Base64 /// </summary> /// <param name="buff">byte[]</param> /// <returns>转Base64</returns> public static string BytesToBase64(byte[] buff) { return System.Text.Encoding.UTF8.GetString(buff); } /// <summary> /// Base64转byte[] /// </summary> /// <param name="Base64">转Base64</param> /// <returns>byte[]</returns> public static byte[] Base64ToBytes(string Base64) { return System.Text.Encoding.UTF8.GetBytes(Base64); } /// <summary> /// byte[]转文件保存指定地址 /// </summary> /// <param name="buff">byte数组</param> /// <param name="SavePath">保存地址</param> /// <param name="FileName">文件名</param> /// <param name="Open">是否打开文件</param> public static void BytesToFile(byte[] buff, string SavePath, string FileName, bool Open = false) { //如果不存在就创建Enclosure文件夹 if (Directory.Exists(SavePath) == false) Directory.CreateDirectory(SavePath); if (System.IO.File.Exists(SavePath + @"\" + FileName)) System.IO.File.Delete(SavePath + @"\" + FileName); FileStream fs = new FileStream(SavePath + @"\" + FileName, FileMode.CreateNew); BinaryWriter bw = new BinaryWriter(fs); bw.Write(buff, 0, buff.Length); bw.Close(); fs.Close(); if (Open) { //创建要运行的文件或者程序 var startfile = new ProcessStartInfo { FileName = SavePath + @"\" + FileName,//文件完全路径 WindowStyle = ProcessWindowStyle.Normal,//Windows窗口样式 UseShellExecute = true//为true,则用默认的打开方式打开 }; //创建Process命令 var cmd = new Process(); cmd.StartInfo = startfile; cmd.Start(); //打开文件 } } /// <summary> /// Base64转文件保存指定地址 /// </summary> /// <param name="Base64">Base64</param> /// <param name="SavePath">保存地址</param> /// <param name="FileName">文件名</param> public static void Base64ToFile(string Base64, string SavePath, string FileName, bool Open = false) { //如果不存在就创建Enclosure文件夹 if (Directory.Exists(SavePath) == false) Directory.CreateDirectory(SavePath); if (System.IO.File.Exists(SavePath + @"\" + FileName)) System.IO.File.Delete(SavePath + @"\" + FileName); byte[] buff = Base64ToBytes(Base64); FileStream fs = new FileStream(SavePath + @"\" + FileName, FileMode.CreateNew); BinaryWriter bw = new BinaryWriter(fs); bw.Write(buff, 0, buff.Length); bw.Close(); fs.Close(); if (Open) { //创建要运行的文件或者程序 var startfile = new ProcessStartInfo { FileName = SavePath + @"\" + FileName,//文件完全路径 WindowStyle = ProcessWindowStyle.Normal,//Windows窗口样式 UseShellExecute = true//为true,则用默认的打开方式打开 }; //创建Process命令 var cmd = new Process(); cmd.StartInfo = startfile; cmd.Start(); //打开文件 } } /// <summary> /// Stream转File /// </summary> /// <param name="stream">Stream</param> /// <param name="fileName">绝对路径</param> public static void StreamToFile(Stream stream, string SavePath, string FileName, bool Open = false) { //如果不存在就创建Enclosure文件夹 if (Directory.Exists(SavePath) == false) Directory.CreateDirectory(SavePath); if (System.IO.File.Exists(SavePath + @"\" + FileName)) System.IO.File.Delete(SavePath + @"\" + FileName); // 把 Stream 转换成 byte[] byte[] bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); // 设置当前流的位置为流的开始 stream.Seek(0, SeekOrigin.Begin); // 把 byte[] 写入文件 FileStream fs = new FileStream(SavePath + @"\" + FileName, FileMode.Create); BinaryWriter bw = new BinaryWriter(fs); bw.Write(bytes); bw.Close(); fs.Close(); if (Open) { //创建要运行的文件或者程序 var startfile = new ProcessStartInfo { FileName = SavePath + @"\" + FileName,//文件完全路径 WindowStyle = ProcessWindowStyle.Normal,//Windows窗口样式 UseShellExecute = true//为true,则用默认的打开方式打开 }; //创建Process命令 var cmd = new Process(); cmd.StartInfo = startfile; cmd.Start(); //打开文件 } } /// <summary> /// byte[]转System.Drawing.Image /// </summary> /// <param name="buffer">byte[]</param> /// <returns>System.Drawing.Image</returns> public static Image ByteToImage(byte[] buffer) { MemoryStream ms = new MemoryStream(buffer); ms.Position = 0; Image img = Image.FromStream(ms); ms.Close(); return img; } /// <summary> /// System.Drawing.Bitmap转byte[] /// </summary> /// <param name="Bit">System.Drawing.Bitmap</param> /// <param name="format">图片格式</param> /// <returns>byte[]</returns> public static byte[] ByteToBitmap(Bitmap Bitmap, ImageFormat format) { byte[] back = null; MemoryStream ms = new MemoryStream(); Bitmap.Save(ms, format); back = ms.GetBuffer(); ms.Dispose(); return back; } /// <summary> /// byte[]转内存流MemoryStream /// </summary> /// <param name="buff">byte[]</param> /// <returns>MemoryStream</returns> public static MemoryStream ByteToMemoryStream(byte[] buff) { return new MemoryStream(buff); } /// <summary> /// 内存流MemoryStream转byte[] /// </summary> /// <param name="outStream">MemoryStream</param> /// <returns>byte[]</returns> public static byte[] MemoryStreamToByte(MemoryStream outStream) { return outStream.ToArray(); } /// <summary> /// 流Stream转byte[] /// </summary> /// <param name="stream">Stream</param> /// <returns>byte[]</returns> public byte[] StreamToByte(Stream stream) { byte[] bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); // 设置当前流的位置为流的开始 stream.Seek(0, SeekOrigin.Begin); return bytes; } /// <summary> /// byte[]转Stream流 /// </summary> /// <param name="bytes">byte[]</param> /// <returns>Stream</returns> public Stream ByteToStream(byte[] bytes) { return new MemoryStream(bytes); } //从文件读取 Stream /// <summary> /// 文件转Stream流 /// </summary> /// <param name="FileName">绝对路径</param> /// <returns>Stream流</returns> public Stream FileToStream(string FileName) { // 打开文件 FileStream fileStream = new FileStream(FileName, FileMode.Open, FileAccess.Read, FileShare.Read); // 读取文件的 byte[] byte[] bytes = new byte[fileStream.Length]; fileStream.Read(bytes, 0, bytes.Length); fileStream.Dispose(); fileStream.Close(); // 把 byte[] 转换成 Stream Stream stream = new MemoryStream(bytes); return stream; }
内容总结
以上是互联网集市为您收集整理的C# 操作文件常用的方法全部内容,希望文章能够帮你解决C# 操作文件常用的方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。