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

打开文件窗口、保存文件窗口、文件流的方法,废话不多说,直接上码
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();
        }

        /// 
        /// 存入图片
        /// 
        /// 
        /// 
        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() + "成功");
        }

        /// 
        /// 获取图片流
        /// 
        /// 
        /// 
        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;
        }

        /// 
        /// 获取图片
        /// 
        /// 
        /// 
        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);
        }

        /// 
        /// 保存图片
        /// 
        /// 
        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("保存完毕!");
        }
    }
}

你可能感兴趣的:(asp.net,C#相关)