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);
}
}
}
C#下载转换
最新推荐文章于 2024-08-24 09:49:21 发布