using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using DevComponents.DotNetBar; using System.IO; namespace Cyberpipe.PAS_Forms { public partial class F_PASFiles : Office2007Form { public F_PASFiles() { InitializeComponent(); } #region 公共变量 PAS_logicfile.PAS_Affair PASAClass = new Cyberpipe.PAS_logicfile.PAS_Affair();//实例化ModuleClass文件夹下的FrmAffairClass公共类 //PAS_logicfile.PAS_Database PAS_dataclass = new PAS_logicfile.PAS_Database();//实例化ModuleClass文件夹下的DataClass公共类 //string Imadir = ""; #endregion private void BT_ADD_Click(object sender, EventArgs e) { switch (Cyberpipe.PAS_logicfile.PAS_Affair.tablename) { case "casic_pas_designdoc": OFD_ADDFile.Filter = "所有文件(*.*)|*.*"; break; case "casic_pas_designpdf": OFD_ADDFile.Filter = "所有文件(*.*)|*.*"; break; case "casic_pas_designcad": ; OFD_ADDFile.Filter = "所有文件(*.*)|*.*"; break; } if (OFD_ADDFile.ShowDialog() == DialogResult.OK) { string Fdir = OFD_ADDFile.FileName; for (int i = 0; i < LV_PASfileDir.Items.Count; i++) { if (Fdir == LV_PASfileDir.Items[i].Text) { MessageBox.Show("该文件已存在,无法添加。"); return; } } ListViewItem lvi = new ListViewItem(Fdir);//实例化一个项 LV_PASfileDir.Items.Add(lvi);//添加列信息 if (Fdir.Length > LV_PASfileDir.Width) LV_PASfileDir.Width = Fdir.Length; } } private void BT_DEL_Click(object sender, EventArgs e) { if (LV_PASfileDir.SelectedItems.Count > 0) { ListViewItem HLVI = LV_PASfileDir.SelectedItems[0]; HLVI.Remove(); } else { MessageBox.Show("请选择要删除的文件。"); } } private void OK_Click(object sender, EventArgs e) { string sdir = "";//原目录 string ddir = "";//目的目录 int m = int.Parse(this.Tag.ToString());//当前操作的标识 int n = -1;//是否修改成功 int PID = int.Parse(Cyberpipe.PAS_logicfile.PAS_Affair.Redact_M);//操用节点的ID号 switch (m) { case 0: { if (LV_PASfileDir.Items.Count > 0) { Cyberpipe.PAS_logicfile.PAS_Affair.ADD_LV.Items.Clear();//清空所有项的集合 Cyberpipe.PAS_logicfile.PAS_Affair.ADD_LV.Columns.Clear();//清空所有列的集合 Cyberpipe.PAS_logicfile.PAS_Affair.ADD_LV.GridLines = true;//在各数据之间形成网格线 Cyberpipe.PAS_logicfile.PAS_Affair.ADD_LV.View = View.Details;//显示列名称 Cyberpipe.PAS_logicfile.PAS_Affair.ADD_LV.Columns.Add("文件名", 80, HorizontalAlignment.Center);//设置列标头的名称及大小 for (int i = 0; i < LV_PASfileDir.Items.Count; i++) { sdir = LV_PASfileDir.Items[i].Text; ddir = Cyberpipe.PAS_logicfile.PAS_Affair.Redact_D + "\\" + PASAClass.Files_Name(sdir, m); string filepath = ddir.Substring(0, ddir.IndexOf("\\")); string foldddir = Utility.uploadpath + "\\" + Cyberpipe.PAS_logicfile.PAS_Affair.tablename + "\\" + ddir; //添加文件 FileStream fs = File.OpenRead(sdir);//文件转为byte[] long ff=fs.Length; byte[] buffer = new byte[ff];// fs.Read(buffer, 0, buffer.Length); udfiles.UpDownFile upfolder = new udfiles.UpDownFile(Utility.udserviceurl); n = upfolder.UploadFiles(foldddir, buffer); //n = PASAClass.Folder_Handle(foldddir, sdir, "", m); switch (n) { case 0: sdir = "insert into " + Cyberpipe.PAS_logicfile.PAS_Affair.tablename + " (NodePID,NodeName,NodePath,NodeType,NodeSign) values(" + PID + ",'" + PASAClass.Files_Name(sdir, m) + "','" + filepath + "'," + m + ",'" + Utility.userName + "')"; OledbHelper.getsqlcom(sdir); DataSet DS = OledbHelper.getDataSet("select max(NODEID) from " + Cyberpipe.PAS_logicfile.PAS_Affair.tablename, Cyberpipe.PAS_logicfile.PAS_Affair.tablename); ListViewItem lvi = new ListViewItem(PASAClass.Files_Name(ddir, m));//实例化一个项 lvi.Tag = int.Parse(DS.Tables[0].Rows[0][0].ToString()); Cyberpipe.PAS_logicfile.PAS_Affair.ADD_LV.Items.Add(lvi);//添加列信息 break; case 1: LV_PASfileDir.Items[i].Remove(); break; case 2: if (MessageBox.Show("文件夹下有同名文件,是否替换?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) n = upfolder.UploadFilesDir(foldddir, buffer); else { ;} if (n == 0) MessageBox.Show("文件添加成功!"); else MessageBox.Show("文件添加失败!"); break; } } DialogResult = DialogResult.OK;//将当前窗体的对话框返回值设为OK } else { MessageBox.Show("添加的文件不能为空。"); } break; } case 1: { //ddir = Cyberpipe.PAS_logicfile.PAS_Affair.Redact_D; ddir = Application.StartupPath + "\\Files\\" + Cyberpipe.PAS_logicfile.PAS_Affair.tablename + "\\" + Cyberpipe.PAS_logicfile.PAS_Affair.Redact_D + "\\" + Cyberpipe.PAS_logicfile.PAS_Affair.Redact_N; //sdir = PASAClass.UpAndDown_Dir(Cyberpipe.PAS_logicfile.PAS_Affair.Redact_D) + "\\" + TB_PASfilename.Text.Trim(); sdir = TB_PASfilename.Text.Trim(); sdir = "update " + Cyberpipe.PAS_logicfile.PAS_Affair.tablename + " set NODENAME='" + TB_PASfilename.Text + "',NODEPATH='" + Cyberpipe.PAS_logicfile.PAS_Affair.Redact_D + "' where NODEID='" + Cyberpipe.PAS_logicfile.PAS_Affair.Redact_M + "'"; break; } case 2: { //ddir = Cyberpipe.PAS_logicfile.PAS_Affair.Redact_D; ddir = Utility.uploadpath + "\\" + Cyberpipe.PAS_logicfile.PAS_Affair.tablename + Cyberpipe.PAS_logicfile.PAS_Affair.Redact_D + "\\" + Cyberpipe.PAS_logicfile.PAS_Affair.Redact_N; sdir = "delete " + Cyberpipe.PAS_logicfile.PAS_Affair.tablename + " where NODEID=" + Cyberpipe.PAS_logicfile.PAS_Affair.Redact_M; break; } } if (m > 0) { udfiles.UpDownFile upfolder = new udfiles.UpDownFile(Utility.udserviceurl); string filenameurl = Utility.uploadpath + "\\" + Cyberpipe.PAS_logicfile.PAS_Affair.tablename + "\\" + Cyberpipe.PAS_logicfile.PAS_Affair.Redact_D + "\\" + Cyberpipe.PAS_logicfile.PAS_Affair.Redact_N; n = upfolder.File_Handle(filenameurl, "", TB_PASfilename.Text.Trim(), m); //n = PASAClass.Folder_Handle(ddir, "", TB_PASfilename.Text.Trim(), m); if (n == 1) { DialogResult = DialogResult.Cancel;//将当前窗体的对话框返回值设为Cancel } else { OledbHelper.getsqlcom(sdir); if (m == 1) Cyberpipe.PAS_logicfile.PAS_Affair.Redact_N = TB_PASfilename.Text; DialogResult = DialogResult.OK;//将当前窗体的对话框返回值设为OK } } Close(); } private void Cancel_Click(object sender, EventArgs e) { this.Close(); } private void F_PASFiles_Load(object sender, EventArgs e) { bool show_bool = true; if (int.Parse(this.Tag.ToString()) == 0) show_bool = true; else show_bool = false; LV_PASfileDir.Visible = show_bool; BT_ADD.Visible = show_bool; BT_DEL.Visible = show_bool; TB_PASfilename.Visible = !show_bool; LB_PASfilename.Visible = !show_bool; //panel_Title.BackgroundImage = Image.FromFile(photoDir + "\\Image\\" + ModuleClass.FrmAffairClass.Redact_T + this.Tag.ToString() + ".JPG"); switch (int.Parse(this.Tag.ToString())) { case 0: { LV_PASfileDir.Items.Clear();//清空所有项的集合 LV_PASfileDir.Columns.Clear();//清空所有列的集合 LV_PASfileDir.GridLines = true;//在各数据之间形成网格线 LV_PASfileDir.View = View.Details;//显示列名称 LV_PASfileDir.FullRowSelect = true;//在单击某项时,对其进行选中 LV_PASfileDir.Columns.Add("文件路径", LV_PASfileDir.Width - 5, HorizontalAlignment.Center);//设置列标头的名称及大小 break; } case 1: case 2: { if (int.Parse(this.Tag.ToString()) == 1) { LB_PASfilename.Text = "文件名称:"; TB_PASfilename.Text = Cyberpipe.PAS_logicfile.PAS_Affair.Redact_N; } if (int.Parse(this.Tag.ToString()) == 2) { TB_PASfilename.Visible = show_bool; LB_PASfilename.Text = "是否删除该文件?"; } break; } } } } }