打开文件窗口、保存文件窗口、文件流的方法

来源:互联网 发布:淘宝直通车定向投放 编辑:程序博客网 时间:2024/06/04 17:43
打开文件窗口、保存文件窗口、文件流的方法,废话不多说,直接上码
using System;using System.Data;using System.Windows.Forms;using System.Data.SQLite;using System.IO;using System.Diagnostics;namespace IpadDataConvert{    public partial class MainForm : Form    {        public MainForm()        {            InitializeComponent();        }        /// <summary>        /// 存入图片        /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        private void button1_Click(object sender, EventArgs e)        {            OpenFileDialog openFileDialog = new OpenFileDialog();            openFileDialog.Filter = "JPEG文件(*.jpg;*.jpeg;*.jpe;*.jfjf)|*.jpg;*.jpeg;*.jpe;*.jfjf|PNG文件(*.png)|*.png;|所有图片(*.*)|*.jpg;*.jpeg;*.jpe;*.jfjf;*.png";            openFileDialog.FilterIndex = 0;            openFileDialog.RestoreDirectory = true;            openFileDialog.Title = "请选择图片";            openFileDialog.AddExtension = true;//自动添加扩展名            if (openFileDialog.ShowDialog() != DialogResult.OK)            {                return;            }            if (string.IsNullOrEmpty(openFileDialog.FileName))            {                return;            }            string imageWithPath = openFileDialog.FileName;            string sql = "INSERT INTO Item(title,image) VALUES(?, ?)";            MessageBox.Show(SQLiteDbHelper.Instance.ExecuteNonQuery(sql, new SQLiteParameter("", "test"), new SQLiteParameter("", GetImageData(imageWithPath))).ToString() + "成功");        }        /// <summary>        /// 获取图片流        /// </summary>        /// <param name="imageWithPath"></param>        /// <returns></returns>        private byte[] GetImageData(string imageWithPath)        {            FileStream fs = new FileStream(imageWithPath, FileMode.Open);            byte[] imageData = new byte[fs.Length];            fs.Read(imageData, 0, imageData.Length);            byte[] imageDataAES = AES.AESEncrypt(imageData);            fs.Close();            return imageDataAES;        }        /// <summary>        /// 获取图片        /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        private void button2_Click(object sender, EventArgs e)        {            string sql = "SELECT * FROM Item WHERE title = ?";            DataTable dt = SQLiteDbHelper.Instance.CreateDataTable(sql, new SQLiteParameter("", "test"));            Item item = new Item();            item.Title = dt.Rows[0]["title"].ToString();            item.ImageByte = (byte[])dt.Rows[0]["image"];            item.ImageByte = AES.AESDecrypt(item.ImageByte);            SaveImage(item);        }        /// <summary>        /// 保存图片        /// </summary>        /// <param name="item"></param>        private static void SaveImage(Item item)        {            SaveFileDialog saveFileDialog = new SaveFileDialog();            saveFileDialog.Filter = "JPEG文件(*.jpg;*.jpeg;*.jpe;*.jfjf)|*.jpg;*.jpeg;*.jpe;*.jfjf|PNG文件(*.png)|*.png;|所有图片(*.*)|*.jpg;*.jpeg;*.jpe;*.jfjf;*.png";            saveFileDialog.FilterIndex = 0;            saveFileDialog.RestoreDirectory = true;            saveFileDialog.CreatePrompt = true;            saveFileDialog.Title = "选择图片生成的位置";            saveFileDialog.FileName = item.Title;            saveFileDialog.AddExtension = true;//自动添加扩展名            saveFileDialog.OverwritePrompt = true;//覆盖提示框显示            saveFileDialog.CreatePrompt = false;//创建文件不提示            if (saveFileDialog.ShowDialog() != DialogResult.OK)            {                return;            }            if (string.IsNullOrEmpty(saveFileDialog.FileName))            {                MessageBox.Show("文件名不能为空!");                return;            }            string imageWithPath = saveFileDialog.FileName;            using (MemoryStream ms = new MemoryStream(item.ImageByte))            {                using (FileStream fs = new FileStream(imageWithPath, FileMode.Create, FileAccess.Write))                {                    byte[] data = ms.ToArray();                    fs.Write(data, 0, data.Length);                    fs.Flush();                }            }            MessageBox.Show("保存完毕!");        }    }}