C#下载转换

using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Threading;
using System.IO;
using System.Diagnostics;
using System.Runtime.Remoting.Messaging;
using System.Security.Permissions;
using System.Windows.Forms.VisualStyles;
using Aspose.Pdf;
using Aspose.Slides;
using Aspose.Words.Lists;
using OMCS.Engine.WhiteBoard;
using ArrayList = System.Collections.ArrayList;
using Image = System.Drawing.Image;


namespace _04._18Demo
{
    public partial class Form1 : Form
    {
        public static string[] arr;
        public static string[] b;
        public static string[] c;
        public List<string> Llist = new List<string>();
        public DataSet Ds = GetDataSet();
        public string dPath = @"\\192.168.0.84\File\File\394542644\";
        public string fileName;
        public string lPath;
        public string lPath_fileexc;
        public string extendName;
        public string originFilePath;
        public string imageOutputDirPath;
        public int i = 0;
        public int j = 0;
        public List<string> convertToImage;
        public Form1()
        {
            InitializeComponent();
        }
        public static DataSet GetDataSet()
        {
            string str = "Data Source=SHEN;Initial Catalog=Student;User ID=sa;Password=abc123;";
            SqlConnection myConn = new SqlConnection(str);
            myConn.Open(); //将连接打开
            string sql = "select * from Test";
            SqlCommand comm = new SqlCommand(sql, myConn);
            SqlDataAdapter sda = new SqlDataAdapter(comm);
            DataSet ds = new DataSet();
            sda.Fill(ds);
            myConn.Close();
            return ds;
        }
        private void button1_Click(object sender, EventArgs e)
        {
            arr = new string[Ds.Tables[0].Rows.Count];

            b=new  String [1];
            c=new  String[Ds.Tables[0].Rows.Count-1];
                for (int i = 0; i < arr.Length; i++)
                {
                    arr[i] = Ds.Tables[0].Rows[i]["Sname"].ToString();
                }
                 if (arr.Length>=1)
                 {
                        b[0] = arr[0];
                        for (int i = 1; i < arr.Length; i++)
                        {
                            c[i - 1] = arr[i];
                        }
                     AAA(b);
                     pictureBox1.Image = Image.FromFile(Llist[0].ToString()); 
                     DelegateAAA da = new DelegateAAA(AAA);
                     IAsyncResult result = da.BeginInvoke(c, new AsyncCallback(CallBackAAA), null); 


                 }

        }
        /// <summary>  
        /// 下载转换方法  
        /// </summary>  
        private void AAA(string[] aa)
        {
            bool status = false;
            //连接
            status = connectState(@"\\192.168.0.84\File\File\394542644", "OperationFile", "@@test12345678");
            if (status)
            {
                for (int i = 0; i < aa.Length; i++)
                {
                    fileName = aa[i];
                    lPath = @"D:\Convert_Befor\" + fileName;
                    TransportRemoteToLocal(lPath, dPath, fileName);

                    lPath_fileexc = lPath.Substring(lPath.LastIndexOf(".") + 1,lPath.Length - lPath.LastIndexOf(".") - 1); //获取文件扩展名
                    extendName = "." + lPath_fileexc;
                    originFilePath = lPath;
                    imageOutputDirPath = @"D:\Convert_Later\" + fileName + "\\";


                    IImageConverterFactory f = new _04._18Demo.ImageConverter.ImageConverterFactory();
                    IImageConverter imageConverter = f.CreateImageConverter(extendName);
                    Llist.AddRange(imageConverter.ConvertToImage(originFilePath,imageOutputDirPath));
                }
              }
            else
            {
                MessageBox.Show("未能连接!");
            }

            return;
        }
        /// <summary>  
        /// 上一页 
        /// </summary> 
        private void button2_Click(object sender, EventArgs e)
        {
            i--;
            if (i < 0)
            {
                i = Llist.Count - 1;
            }
            pictureBox1.Image = Image.FromFile(Llist[i].ToString());
        }
        /// <summary>  
        /// 下一页 
        /// </summary> 
        private void button3_Click(object sender, EventArgs e)
        {
            i++;
            if (i > Llist.Count - 1)
            {
                i = 0;
            }
            pictureBox1.Image = Image.FromFile(Llist[i].ToString());
        }
        /// <summary>  
        /// 连接远程共享文件夹  
        /// </summary>  
        /// <param name="path">远程共享文件夹的路径</param>  
        /// <param name="userName">用户名</param>  
        /// <param name="passWord">密码</param>  
        /// <returns></returns>  
        public static bool connectState(string path, string userName, string passWord)
        {
            bool Flag = false;
            Process proc = new Process();
            try
            {
                proc.StartInfo.FileName = "cmd.exe";
                proc.StartInfo.UseShellExecute = false;
                proc.StartInfo.RedirectStandardInput = true;
                proc.StartInfo.RedirectStandardOutput = true;
                proc.StartInfo.RedirectStandardError = true;
                proc.StartInfo.CreateNoWindow = true;
                proc.Start();
                string dosLine = "net use " + path + " " + passWord + " /user:" + userName;
                proc.StandardInput.WriteLine(dosLine);
                proc.StandardInput.WriteLine("exit");
                while (!proc.HasExited)
                {
                    proc.WaitForExit(1000);
                }

                string errormsg = proc.StandardError.ReadToEnd();
                proc.StandardError.Close();
                if (string.IsNullOrEmpty(errormsg))
                {
                    Flag = true;
                }
                else
                {
                    throw new Exception(errormsg);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                proc.Close();
                proc.Dispose();
            }

            return Flag;
        }
        /// <summary>  
        /// 从远程服务器下载文件到本地  
        /// </summary>  
        /// <param name="src">下载到本地后的文件路径,包含文件的扩展名</param>  
        /// <param name="dst">远程服务器路径(共享文件夹路径)</param>  
        /// <param name="fileName">远程服务器(共享文件夹)中的文件名称,包含扩展名</param>  
        public static void TransportRemoteToLocal(string src, string dst,string fileName) //src:下载到本地后的文件路径     dst:远程服务器路径    fileName:远程服务器dst路径下的文件名  
        {

            if (!Directory.Exists(dst))
            {
                Directory.CreateDirectory(dst);
            }

            dst = dst + fileName;

            FileStream inFileStream = new FileStream(dst, FileMode.Open); //远程服务器文件  此处假定远程服务器共享文件夹下确实包含本文件,否则程序报错  

            FileStream outFileStream = new FileStream(src, FileMode.OpenOrCreate); //从远程服务器下载到本地的文件  

            byte[] buf = new byte[inFileStream.Length];

            int byteCount;

            while ((byteCount = inFileStream.Read(buf, 0, buf.Length)) > 0)
            {

                outFileStream.Write(buf, 0, byteCount);

            }

            inFileStream.Flush();

            inFileStream.Close();

            outFileStream.Flush();

            outFileStream.Close();

        }
        //定义委托
        public delegate void DelegateAAA(string[] aa);
        // //回调函数
        private void CallBackAAA(IAsyncResult ar)
        {
            //从异步状态 ar.AsyncState中,获取委托对象
            DelegateAAA dlrt = (DelegateAAA)((AsyncResult)ar).AsyncDelegate;
            dlrt.EndInvoke(ar);
        }


    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值