Newer
Older
GHFX_REFACTOR / HFS_logicfile / HFS_Affair.cs
wxn on 9 Nov 2016 49 KB 冗余代码整理
using System;
using System.Data;
using System.Drawing.Printing;
using System.IO;
using System.Windows.Forms;
using Cyberpipe.HFS_Forms;

namespace Cyberpipe.HFS_logicfile
{
    class HFS_Affair
    { 
        #region  公共变量
       // public Point CPoint;  //添加命名空间using System.Drawing;
        public static string BaseNode = "";//设录文件夹的根节点名称
        public string TempNode = "";//临时根节点名称
        public static int UserSign = 0;//用户的ID号
        //public static string IfSign = "";//查找当前用户的条件
        public static int Fclass = 0;//窗体的类型:1为复制,2为删
        public static string Redact_T = "";
        public static string Redact_N = "";  //treeview接点的名称
        public static string Redact_M = "";
        public static string Redact_D = "";
        public static ListView ADD_LV = new ListView();
        public static string tablename = "HFS";
         
        #endregion

        #region
        /// <summary>
        /// 查询结果在View里显示
        /// </summary>
        /// <param LV="ListView">ListView控件</param>
        /// <param TV="TreeView">TreeView控件</param>
        /// <param TF="bool">用于判断显示指定的控件</param>
        public void Resulttoshow(TreeView TV, ListView LV_AF, bool TF, DataTable table)
        {
            TV.Dock = DockStyle.Fill;//使TreeView控件最大化
            TV.Visible = !TF;//是否显示TreeView控件
            LV_AF.Dock = DockStyle.Fill;//使ListView控件最大化
            LV_AF.Visible = true;//是否显示ListView控件
              
            ShowResultTree(TV, table); 
        } 

        #endregion 
        #region  调用导入导出编辑窗体
        /// <summary>
        /// 调用导入导出编辑窗体
        /// </summary>
        /// <param STV="TreeView">查询的节点</param>
        /// <param DLV="ListView">显示查找的文件</param>
        /// <param FName="string">查找的文件名</param>
        public void Find_File(TreeView STV, ListView DLV, string FName)
        {
            STV.Dock = DockStyle.Fill;//使TreeView控件最大化
            STV.Visible = true;//是否显示TreeView控件
            //DLV.Visible = false; 
            DataSet DS = new DataSet();
            if (FName == "")
            {
                MessageBox.Show("查找文件名不能为空。");
                return;
            }
            //string sql = "select * from casic_hfs where NODENAME like '%"+FName 
                //+"%' and NODETYPE = 0";
            DS = OledbHelper.getDataSet("select * from casic_hfs where NODENAME like '%" + FName
                + "%' and NODETYPE = 0", "casic_hfs");
            //DS = OledbHelper.getDataSet(sql,"casic_hfs");
            if (DS.Tables[0].Rows.Count == 0)
            {
                MessageBox.Show("没有查到相关文件。");
                return;
            }
            ShowResultTree(STV, DS.Tables[0]);

        }
        #endregion
        #region  在文件列表中添加根节点
        /// <summary>
        /// 在文件列表中添加根节点
        /// </summary>
        /// <param TV="TreeView">TreeView控件</param>
        /// <param Nodename="string">要添加的根节点名称</param>
        public void ShowResultTree(TreeView TV, DataTable table)
        {
            //int temp = 0;

            //TempNode = "";
            //TV.Nodes.Clear();//清空TreeView控件

            //TreeNode TNode = new TreeNode();
            //string[] projects = new string[table.Rows.Count];
            //string[] filenames = new string[table.Rows.Count];

            //for (int i = 0; i < table.Rows.Count; i++)
            //{
            //    projects[i] = table.Rows[i][3].ToString();
            //    filenames[i] = table.Rows[i][2].ToString();
            //    Cyberpipe.HFS_logicfile.HFS_Affair.BaseNode = projects[i].Trim();

            //    if (BaseNode.Trim() != TempNode.Trim())
            //    { 
            //        TNode = TV.Nodes.Add(BaseNode);//向TreeView控件中添加根节点 
            //        TNode.Nodes.Add(filenames[i]);//添加该节点 
            //        TempNode = BaseNode.Trim();
            //    }
            //    else { 
            //        TNode.Nodes.Add(filenames[i]);//添加该节点
            //    } 
            //}
            int temp = 0;

            TempNode = "";
            TV.Nodes.Clear();//清空TreeView控件

            string[] projects = new string[table.Rows.Count];
            string[] filenames = new string[table.Rows.Count];

            TreeNode RNode = null;
            TreeNode YNode = null;
            for (int i = 0; i < table.Rows.Count; i++)
            {
                projects[i] = table.Rows[i][3].ToString();
                filenames[i] = table.Rows[i][2].ToString();
                BaseNode = projects[i].Trim();

                if (BaseNode.Trim() != TempNode.Trim())
                {
                    RNode = new TreeNode(BaseNode);//向TreeView控件中添加根节点    

                    YNode = new TreeNode(filenames[i]);//加个叶子
                    YNode.Tag = table.Rows[i][0].ToString();
                    RNode.Nodes.Add(YNode);
                    TempNode = BaseNode.Trim();
                    temp = 0;
                }
                else
                {
                    YNode = new TreeNode(filenames[i]);//加个叶子 
                    YNode.Tag = table.Rows[i][0].ToString();
                    RNode.Nodes.Add(YNode);
                    temp++;
                }
                if ((temp == 0) || (table.Rows.Count == 1))
                {
                    TV.Nodes.Add(RNode);
                }
            }
        }
        #endregion

        #region  切换文件列表和资料集
        /// <summary>
        /// 切换文件列表和资料集
        /// </summary>
        /// <param LV="ListView">ListView控件</param>
        /// <param TV="TreeView">TreeView控件</param>
        /// <param TF="bool">用于判断显示指定的控件</param>
        public void Itemtoshow(ListView LV, TreeView TV, ListView LV_AF, bool TF) //用于显示不用专题图的内容
        {
            LV.Dock = DockStyle.Fill;//使ListView控件最大化
            TV.Dock = DockStyle.Fill;//使TreeView控件最大化
            LV.Visible = TF;//是否显示ListView控件
            TV.Visible = !TF;//是否显示TreeView控件
            LV_AF.Dock = DockStyle.Fill;//使ListView控件最大化
            LV_AF.Visible = true;//是否显示ListView控件
             
            if (TF)//调用自定义方法Data_List获取资集中的名称,并显示在ListView控件中
            {
                string sql = "select casic_hfs.\"NODENAME\",casic_hfs.\"NODEID\",casic_hfs.\"NODETYPE\" from "
                    + "casic_hfs where casic_hfs.\"NODETYPE\"=2";
                Data_List(LV,OledbHelper.getDataSet(sql,"casic_hfs"));
                //Data_List(LV, OledbHelper.getDataSet("select NodeName,NodeID,NodeType from HFS where NodeType=2", "HFS"));
            }
              
        }
        #endregion

        #region  向资料集中的添加名称
        /// <summary>
        /// 向资料集中的添加名称
        /// </summary>
        /// <param LV="ListView">ListView控件</param>
        /// <param DS="DataSet">返回查找的数据集</param>
        public void Data_List(ListView LV, DataSet DS)  //Form或MouseEventArgs添加命名空间using System.Windows.Forms;
        {
            LV.Items.Clear();//清空所有项的集合
            LV.Columns.Clear();//清空所有列的集合
            LV.GridLines = true;//在各数据之间形成网格线
            LV.View = View.Details;//显示列名称
            LV.FullRowSelect = true;//在单击某项时,对其进行选中
            LV.Columns.Add("项目名称", 200, HorizontalAlignment.Center);//设置列标头的名称及大小
            //添加指定列的信息
            for (int i = 0; i < DS.Tables[0].Rows.Count; i++)
            {
                ListViewItem lvi = new ListViewItem(DS.Tables[0].Rows[i][0].ToString());//实例化一个项
                lvi.Tag = DS.Tables[0].Rows[i][1];
                LV.Items.Add(lvi);//添加列信息            
            }
        }
        #endregion

        #region  窗体设置
        /// <summary>
        /// 窗体设置
        /// </summary>
        /// <param Frm="Form">窗体</param>
        public void FrmSetUp(Form Frm)  //Form或MouseEventArgs添加命名空间using System.Windows.Forms;
        {
            //Frm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;//去掉窗体的边框
            Frm.StartPosition = FormStartPosition.CenterScreen;//使窗体居中
         
        }
        #endregion
  
       

        #region  切换文件列表和资料集
        /// <summary>
        /// 切换文件列表和资料集
        /// </summary>
        /// <param LV="ListView">ListView控件</param>
        /// <param TV="TreeView">TreeView控件</param>
        /// <param TF="bool">用于判断显示指定的控件</param>
        public void Itemtoshow(ListView LV, TreeView TV, ListView LV_AF, ToolStripLabel TSL, bool TF) //用于显示不用专题图的内容
        {
            LV.Dock = DockStyle.Fill;//使ListView控件最大化
            TV.Dock = DockStyle.Fill;//使TreeView控件最大化
            LV.Visible = TF;//是否显示ListView控件
            TV.Visible = !TF;//是否显示TreeView控件
            LV_AF.Dock = DockStyle.Fill;//使ListView控件最大化
            LV_AF.Visible = true;//是否显示ListView控件
            if (TF)//调用自定义方法Data_List获取资集中的名称,并显示在ListView控件中
            {
                string sql = "select casic_hfs.\"NODENAME\",casic_hfs.\"NODEID\",casic_hfs.\"NODETYPE\" from"
                + "casic_hfs where casic_hfs.\"NODETYPE\"=2";
                Data_List(LV,OledbHelper.getDataSet(sql,tablename));
                //Data_List(LV, OledbHelper.getDataSet("select NodeName,NodeID,NodeType from HFS where NodeType=2", tablename)); 
            }
         }
        public void Itemtoshow(ListView LV, TreeView TV,bool TF,int mark) //用于显示不同的专题图项目
        {
            LV.Dock = DockStyle.Fill;//使ListView控件最大化
            TV.Dock = DockStyle.Fill;//使TreeView控件最大化
            LV.Visible = TF;//是否显示ListView控件
            TV.Visible = !TF;//是否显示TreeView控件
            if (TF)//调用自定义方法Data_List获取资集中的名称,并显示在ListView控件中
            {
                string sql = "select casic_hfs.\"NODENAME\",casic_hfs.\"NODEID\",casic_hfs.\"NODETYPE\" from "
                    + " casic_hfs where casic_hfs.\"NODETYPE\"=2";
                Data_List(LV,OledbHelper.getDataSet(sql,tablename));
                //Data_List(LV, OledbHelper.getDataSet("select NodeName,NodeID,NodeType from HFS where NodeType=2", tablename));
            }
               
        }
        #endregion

        #region  在文件列表中添加根节点
        /// <summary>
        /// 在文件列表中添加根节点
        /// </summary>
        /// <param TV="TreeView">TreeView控件</param>
        /// <param Nodename="string">要添加的根节点名称</param>
        public void ShowTree(TreeView TV, string Nodename)
        {
            TreeNode TNode = new TreeNode();
            if (BaseNode.Trim() != TempNode.Trim())//判断资料集文件名是否为当前根节点名称
            {
                TV.Nodes.Clear();//清空TreeView控件
                TNode = TV.Nodes.Add(Nodename);//向TreeView控件中添加根节点
                //在数据库中查找当前根节点的信息
                DataSet DSet = OledbHelper.getDataSet("select NODEID,NODEPID,NODENAME,NODETYPE from casic_hfs"
                    + " where NODENAME='" + Nodename + "'", "casic_hfs");
                //string sql = "select NODEID,NODEPID,NODENAME,NODETYPE from casic_hfs where NODENAME = '"
                //    +Nodename+"'";
                ////DataSet DSet = OledbHelper.getDataSet("select NodeID,NodePID,NodeName,NodeType from HFS where NodeName='" + Nodename + "'", "HFS");
                //DataSet DSet = OledbHelper.getDataSet(sql,"casic_hfs");
                TNode.Tag = DSet.Tables[0].Rows[0][0];//获取当前文件的主ID号
                TNode.ImageIndex = 0;//设置当前节点的图片
                TempNode = BaseNode.Trim();//将当前根节点的名称赋给临时变量
                ADD_NullTreeNode(TV, TNode, 0);//调用自定义方法ADD_NullTreeNode
            }
        }
        #endregion

        #region  添加子节点
        /// <summary>
        /// 添加子节点
        /// </summary>
        /// <param TV="TreeView">TreeView控件</param>
        /// <param ANode="TreeNode">当前节点</param>
        public void ADD_TreeNode(TreeView TV, TreeNode ANode)
        {
            //在数据库中查找当前节点下的所有子节点
            string sql = "select NODEID,NODEPID,NODENAME,NODETYPE from casic_hfs where NODEPID = "+ ANode.Tag;
            DataSet DSet = OledbHelper.getDataSet(sql, tablename);
            //DataSet DSet = OledbHelper.getDataSet("select NodeID,NodePID,NodeName,NodeType from HFS where NodePID=" + ANode.Tag, tablename);
            if (DSet.Tables[0].Rows.Count > 0)//当查找的行数大于0时
            {
                ANode.Nodes.Clear();//清空当前节点下的所有子节点
                int TypeIn = 0;//定义一个局部变量,用于存放指定数据的辅ID号
                for (int i = 0; i < DSet.Tables[0].Rows.Count; i++)//遍历数据表中的所有数据
                {
                    TreeNode SonNode = new TreeNode(DSet.Tables[0].Rows[i][2].ToString());//实例化一个具有当前节点名称的节点
                    SonNode.Tag = DSet.Tables[0].Rows[i][0];//在该节点的Tag属性中存放当前信息的主ID号
                    TypeIn = int.Parse(DSet.Tables[0].Rows[i][3].ToString());//存放当前信息的类型
                    if (TypeIn == 0)//设置当前节点的图片
                        SonNode.ImageIndex = 2;
                    else
                        SonNode.ImageIndex = 0;
                    ANode.Nodes.Add(SonNode);//添加该节点
                    ADD_NullTreeNode(TV, SonNode, 1);//调用自定义方法ADD_NullTreeNode
                }
            }
            else
            {
                ANode.Nodes.Clear();//清空子节点
            }
        }
        #endregion

        #region 打印


        public void Print(int MainID, string MainName,PrintDialog printdialog,PrintDocument printdocument)
        {
            DataSet DSet = new DataSet();//实例化一个DataSet对象
            string wdir = "";
            int ty = -1;
            string sql = "select NODEID,NODEPID,NODEPATH,NODETYPE from casic_hfs where NODEID = " + MainID;
            DSet = OledbHelper.getDataSet(sql, tablename);
           // DSet = OledbHelper.getDataSet("select NodeID,NodePID,NodePath,NodeType from HFS where NodeID=" + MainID, tablename);
            ty = int.Parse(DSet.Tables[0].Rows[0][3].ToString());
            wdir = DSet.Tables[0].Rows[0][2].ToString();
            if (ty == 0)
            {
                if (printdialog.ShowDialog() == DialogResult.OK)
                {
                    printdocument.Print();
                }
                
            }
            else
            {
                MessageBox.Show("请选择图片进行打印");
            }
        
        }

        #endregion

        #region  显示当前文件夹下的所有文件
        /// <summary>
        /// 显示当前文件夹下的所有文件
        /// </summary>
        /// <param MainID="int">当前项的主ID号</param>
        /// <param MainName="string">当前项的名称</param>
        /// <param LV="ListView">ListView控件</param>
        /// <param p="int">操作类型</param>
        public void Show_AllFile(int MainID, string MainName, ListView LV,PictureBox PB, int p)
        { 
            LV.Dock = DockStyle.Fill;//使ListView控件最大化
            LV.Visible = true;
            DataSet DSet = new DataSet();//实例化一个DataSet对象
            string wdir = "";
            int ty = -1;
            string sql = "select NODEID,NODEPID,NODEPATH,NODETYPE,NODENAME from casic_hfs where NODEID="+
                MainID;
            DSet = OledbHelper.getDataSet(sql, "casic_hfs");
            //DSet = OledbHelper.getDataSet("select NodeID,NodePID,NodePath,NodeType,NodeName from HFS where NodeID=" + MainID, "HFS");
            ty = int.Parse(DSet.Tables[0].Rows[0][3].ToString());
            wdir = DSet.Tables[0].Rows[0][2].ToString();
             
            string wdirall = Application.StartupPath;
            wdirall = wdirall + "\\Files\\HFS\\" + wdir + "\\" + DSet.Tables[0].Rows[0][4];
             
            if (ty == 0)
            {
                 
            }
            if (ty == 0 && p == 2)
            {
                try
                {
                     
                }
                catch (Exception ex)
                {
                    MessageBox.Show("文件无法打开。");
                }
            }
            else
            {
                //在数据库中获取当前文件夹的信息
                string sql2 = "select NODEID,NODEPID,NODENAME,NODETYPE from casic_hfs where casic_hfs.\"NODEPID\"="+MainID;
                //DSet = OledbHelper.getDataSet("select NodeID,NodePID,NodeName,NodeType from HFS where NodePID=" + MainID, "HFS");
                DSet =OledbHelper.getDataSet(sql2,"casic_hfs");
                if (DSet.Tables[0].Rows.Count > 0)//当数据表的行数大于0时
                {
                    LV.Items.Clear();//清空ListView控件
                    //当前文件夹下的子文件夹和文件添加到ListView控件中
                    for (int i = 0; i < DSet.Tables[0].Rows.Count; i++)
                    {
                        ListViewItem lvi = new ListViewItem(DSet.Tables[0].Rows[i][2].ToString());//实例化一个项
                        lvi.Tag = int.Parse(DSet.Tables[0].Rows[i][0].ToString());
                        if (int.Parse(DSet.Tables[0].Rows[i][3].ToString()) == 0)//设置各项的图片
                            lvi.ImageIndex = 2;
                        else
                            lvi.ImageIndex = 0;
                        LV.Items.Add(lvi);//添加列信息
                    }
                }
            }
        }
        #endregion
       
        #region  在显示节点时,查找是否有子节点
        /// <summary>
        /// 查找是否有子节点
        /// </summary>
        /// <param TV="TreeView">TreeView控件</param>
        /// <param ANode="TreeNode">当前节点</param>
        /// <param n="int">当前节点</param>
        public void ADD_NullTreeNode(TreeView TV, TreeNode ANode, int n)
        { 
            DataSet DSet = new DataSet();//实例化一个DataSet对象
            if (n == 0)//当n==0时为根节点
                DSet = OledbHelper.getDataSet("select casic_hfs.\"NODEID\",casic_hfs.\"NODEPID\","
            +"casic_hfs.\"NODENAME\",casic_hfs.\"NODETYPE\" from casic_hfs where casic_hfs.\"NODENAME\"="
            +"'" + ANode.Text + "'", "casic_hfs");
            if (n == 1)//当n==1时为子节点
                DSet = OledbHelper.getDataSet("select casic_hfs.\"NODEID\",casic_hfs.\"NODEPID\","
            + "casic_hfs.\"NODENAME\",casic_hfs.\"NODETYPE\" from casic_hfs where casic_hfs.\"NODEPID\"='"
            + ANode.Tag + "'", "casic_hfs");
            if (DSet.Tables[0].Rows.Count > 0)//当查找到的行数大于时
            {
                TreeNode SonNode = new TreeNode("");//实例化一个空的节点
                ANode.Nodes.Add(SonNode);//添加该节点
            }
            else
            {
                ANode.Nodes.Clear();//清空当前节点下的所有子节点
            }
        }
        #endregion

        #region  调用文件夹编辑窗体
        /// <summary>
        /// 调用文件夹编辑窗体
        /// </summary>
        /// <param nob="string">判断操作的是资料集还是文件</param>
        /// <param sender="object">项名称</param>
        /// <param mark="int">标识</param>
        public void Proj_edit(string nob, object sender, int mark)
        { 
            Redact_T = nob;
            Redact_N = "";
            Redact_M = "";
            Redact_D = "";
            ListViewItem HLVI = new ListViewItem();
            TreeNode HTreeNode = new TreeNode();
            DataSet DS = new DataSet();
            if (sender.GetType().Name == "ListView")
            {
                if (((ListView)sender).SelectedItems.Count > 0)
                {
                    HLVI = ((ListView)sender).SelectedItems[0];
                    Redact_N = ((ListView)sender).SelectedItems[0].Text;
                    Redact_M = ((ListView)sender).SelectedItems[0].Tag.ToString();
                    DS = OledbHelper.getDataSet("select NODEID,NODEPATH from "
                        +"casic_hfs where NODEID=" + Redact_M, "casic_hfs");
                    Redact_D = DS.Tables[0].Rows[0][1].ToString();
                }
            }
            if (sender.GetType().Name == "TreeView")
            {
                if (((TreeView)sender).SelectedNode != null)
                {
                    HTreeNode = ((TreeView)sender).SelectedNode;
                    Redact_N = ((TreeView)sender).SelectedNode.Text;
                    Redact_M = ((TreeView)sender).SelectedNode.Tag.ToString();
                    DS = OledbHelper.getDataSet("select NODEID,NODEPATH from "
                        + "casic_hfs where NODEID=" + Redact_M, "casic_hfs");
                    if (DS.Tables[0].Rows.Count == 0)
                        return;
                    Redact_D = DS.Tables[0].Rows[0][1].ToString();
                }
            }
            Frm_HFSProjedits FrmTjxm = new Frm_HFSProjedits();//实例化Frm_Folder窗体
            FrmSetUp(FrmTjxm);//调用自定义方法FrmSetUp,对Frm_Radical窗体进行设置
            FrmTjxm.Tag = mark;

            switch (mark)
            {
                case 0: FrmTjxm.Text = "添加项目"; break;
                case 1: FrmTjxm.Text = "修改项目"; break;
                case 2: FrmTjxm.Text = "删除项目"; break;

            }
            if (FrmTjxm.ShowDialog() == DialogResult.OK)//显示窗体
            {
                switch (mark)
                {
                    case 0:
                        { 
                            if (sender.GetType().Name == "ListView")
                            {
                                ListViewItem lvi = new ListViewItem(Redact_N);//实例化一个项
                                lvi.Tag = int.Parse(Redact_M);
                                ((ListView)sender).Items.Add(lvi);//添加列信息
                            }
                            if (sender.GetType().Name == "TreeView")
                            {
                                TreeNode SonNode = new TreeNode(Redact_N);//实例化一个具有当前节点名称的节点
                                SonNode.Tag = int.Parse(Redact_M);//在该节点的Tag属性中存放当前信息的主ID号
                                SonNode.ImageIndex = 0;
                                HTreeNode.Nodes.Add(SonNode);//添加该节点
                            }
                            break;
                        }
                    case 1:
                        { 
                            if (sender.GetType().Name == "ListView")
                            {
                                HLVI.Text = Redact_N;
                            }
                            if (sender.GetType().Name == "TreeView")
                            {
                                HTreeNode.Text = Redact_N;
                            }
                            break;
                        }
                    case 2:
                        { 
                            if (sender.GetType().Name == "ListView")
                            {
                                HLVI.Remove();
                            }
                            if (sender.GetType().Name == "TreeView")
                            {
                                HTreeNode.Remove();
                            }
                            break;
                        }
                }
            }
            FrmTjxm.Dispose();

        }
        #endregion 

        #region  返回上一级目录
        /// <summary>
        /// 返回上一级目录
        /// </summary>
        /// <param dir="string">目录</param>
        /// <returns>返回String对象</returns>
        public string UpAndDown_Dir(string dir)
        {
            string Change_dir = "";
            Change_dir = Directory.GetParent(dir).FullName;
            return Change_dir;
        }
        #endregion

        #region  文件夹的操作
        /// <summary>
        /// 文件夹的操作
        /// </summary>
        /// <param dir="string">目录</param>
        /// <param NewName="string">修改的文件夹名称</param>
        /// <param n="int">标识</param>
        /// <returns>返回int对象</returns>
        public int Folder_Handle(string dir, string Sdir, string NewName, int n)
        {
            //MessageBox.Show(dir+"=="+Sdir+"=="+NewName+"=="+n.ToString());
            string F_Name = "";
            int t = 0;
            if (Redact_T == "T" || Redact_T == "F")
                F_Name = "文件夹";
            if (Redact_T == "W")
                F_Name = "文件";
            FileInfo FInfo = new FileInfo(dir);
            switch (n)
            {
                case 0:
                    {
                        if (Redact_T == "T" || Redact_T == "F")
                        {
                            if (Directory.Exists(dir))
                            {
                                t = 1;
                                MessageBox.Show("该" + F_Name + "已存在,无法创建。");
                                break;
                            }
                            Directory.CreateDirectory(dir);
                            if (Directory.Exists(dir) == false)
                                t = 1;
                        }
                        if (Redact_T == "W" || Redact_T == "G")
                        {
                            FileInfo SFInfo = new FileInfo(Sdir);
                            bool tbool = true;
                            if (SFInfo.Exists == false)
                            {
                                t = 1;
                                MessageBox.Show("没有找到要复制的" + F_Name);
                                break;
                            }

                            if (FInfo.Exists)
                            {
                                if (MessageBox.Show("文件夹下有同名文件,是否替换?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
                                    tbool = true;
                                else
                                    tbool = false;
                            }
                            try
                            {
                                SFInfo.CopyTo(dir, tbool);
                            }
                            catch (Exception ex)
                            {
                                t = 1;
                                MessageBox.Show(F_Name + "复制失败。");
                            }
                        }
                        break;
                    }
                case 1:
                    { 
                        string NewDir = "";
                        if (Redact_T == "T" || Redact_T == "F")
                        {
                            NewDir = UpAndDown_Dir(dir) + "\\" + NewName;
                            if (Directory.Exists(NewDir))
                            {
                                t = 1;
                                MessageBox.Show("该" + F_Name + "已存在,无法修改。");
                                break;
                            }
                            if (Directory.Exists(dir))
                            {
                                Directory.Move(dir, NewDir);
                            }
                            else
                            {
                                MessageBox.Show(F_Name + "不存在,无法修改。");
                                t = 1;
                                break;
                            }
                        }
                        if (Redact_T == "W")
                        {
                            if (FInfo.Exists)
                            {
                                try
                                {
                                    FInfo = new FileInfo(dir); 
                                    FInfo.MoveTo(UpAndDown_Dir(dir) + "\\" + NewName);
                                }
                                catch (Exception ex)
                                {
                                    MessageBox.Show(F_Name + "文件名修改失败。");
                                    t = 1;
                                }
                            }
                            else
                            {
                                MessageBox.Show(F_Name + "不存在,无法修改。");
                                t = 1;
                            }
                        }
                        break;
                    }
                case 2:
                    {
                        if (Redact_T == "T" || Redact_T == "F")
                        {
                            if (Directory.Exists(dir) == false)
                            {
                                t = 1;
                                MessageBox.Show(F_Name + "不存在。");
                                break;
                            }
                            Directory.Delete(dir, true);
                            if (Directory.Exists(dir))
                            {
                                t = 1;
                                MessageBox.Show(F_Name + "删除失败。");
                                break;
                            }
                        }
                        if (Redact_T == "W")
                        {
                            if (FInfo.Exists == false)
                            {
                                t = 1;
                                MessageBox.Show(F_Name + "不存在。");
                                break;
                            }
                            try
                            {
                                FInfo.Delete();
                            }
                            catch (Exception ex)
                            {
                                t = 1;
                                MessageBox.Show(F_Name + "删除失败。");
                            }
                        }
                        break;
                    }
                case 3:
                    {
                        if (Directory.Exists(Sdir) == false)
                        {
                            t = 1;
                            MessageBox.Show("没有找到要复制的文件夹。");
                            break;
                        }
                        try
                        {
                            Files_Copy(dir, Sdir);
                            if (NewName == "data")
                            {
                                DirectoryInfo di = new DirectoryInfo(dir);//打开path目录,如果存在则执行方法
                                if (di.Exists)
                                {
                                    DataSet DS = OledbHelper.getDataSet("select max(NODEID) from casic_hfs", "casic_hfs");
                                    string SName = DS.Tables[0].Rows[0][0].ToString();
                                    Files_List(di, int.Parse(Redact_M));
                                    Redact_M = SName;
                                    Redact_N = Files_Name(dir, 1);
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            t = 1;
                            MessageBox.Show("文件夹制复失败。");
                        }
                        break;
                    }
            }
            return t;
        }
        #endregion

        #region  批量将文件夹的路径存入数据库中
        /// <summary>
        /// 批量将文件夹的路径存入数据库中
        /// </summary>
        /// <param dir="FileSystemInfo">目录</param>
        /// <param n="int">标识</param>
        /// <returns>返回string对象</returns>
        private void Files_List(FileSystemInfo dir, int NodeID)
        {
            int PID = NodeID;
            string SubDir = dir.ToString();
            if (!dir.Exists)//先判断所指的文件或文件夹是否存在
            {
                return;
            }
            DirectoryInfo dirD = dir as DirectoryInfo;//如果给定的参数不是文件夹则退出

            if (dirD == null)
            {
                OledbHelper.getsqlcom("insert into casic_hfs"
                    +"(NODEPID,NODENAME,NODEPATH,NodeType,NODESIGN) values(" + PID 
                    + ",'" + dirD.Name.Trim() + "','" + SubDir + "',1,0)");
                return;
            }
            OledbHelper.getsqlcom("insert into casic_hfs (NODEPID,NODENAME,"
                                  + "NODEPATH,NODETYPE,NODESIGN) values(" 
                                  + PID + ",'" + dirD.Name.Trim() + "','" + SubDir + "',1,0)");
            DataSet DS = OledbHelper.getDataSet("select max(NODEID) from casic_hfs", "casic_hfs");
            PID = int.Parse(DS.Tables[0].Rows[0][0].ToString());
            SubDir = SubDir + "\\";
            FileSystemInfo[] files = dirD.GetFileSystemInfos();//获取文件夹中所有文件和文件夹
            //对单个FileSystemInfo进行判断,如果是文件夹则进行递归操作
            foreach (FileSystemInfo FSys in files)
            {
                FileInfo file = FSys as FileInfo;
                if (file != null)
                {
                    OledbHelper.getsqlcom("insert into casic_hfs (NODEPID,NODENAME,"
                        + "NODEPATH,NODETYPE,NODESIGN) values(" 
                        + PID + ",'" + file.Name.Trim() + "','" + SubDir + file.Name + "',0,0)");
                }
                else
                {
                    DirectoryInfo DD = new DirectoryInfo(SubDir + FSys);
                    Files_List(DD, PID);//进行Files_List方法的递归调用
                }
            }
        }
        #endregion

        #region  文件夹的复制
        /// <summary>
        /// 文件夹的复制
        /// </summary>
        /// <param Ddir="string">要复制的目的路径</param>
        /// <param Sdir="string">要复制的原路径</param>
        /// <returns>返回int对象</returns>
        private void Files_Copy(string Ddir, string Sdir)
        {
            DirectoryInfo dir = new DirectoryInfo(Sdir);
            string SbuDir = Ddir;
            try
            {
                if (!dir.Exists)//判断所指的文件或文件夹是否存在
                {
                    return;
                }
                DirectoryInfo dirD = dir;//如果给定参数不是文件夹则退出
                string UpDir = UpAndDown_Dir(Ddir);
                if (dirD == null)//判断文件夹是否为空
                {
                    Directory.CreateDirectory(UpDir + "\\" + dirD.Name);//如果为空,创建文件夹并退出
                    return;
                }
                Directory.CreateDirectory(UpDir + "\\" + dirD.Name);
                SbuDir = UpDir + "\\" + dirD.Name + "\\";
                FileSystemInfo[] files = dirD.GetFileSystemInfos();//获取文件夹中所有文件和文件夹
                //对单个FileSystemInfo进行判断,如果是文件夹则进行递归操作
                foreach (FileSystemInfo FSys in files)
                {
                    FileInfo file = FSys as FileInfo;
                    if (file != null)//如果是文件的话,进行文件的复制操作
                    {
                        FileInfo SFInfo = new FileInfo(file.DirectoryName + "\\" + file.Name);//获取文件所在的原始路径
                        SFInfo.CopyTo(SbuDir + "\\" + file.Name, true);//将文件复制到指定的路径中
                    }
                    else
                    {
                        string pp = FSys.Name;//获取当前搜索到的文件夹名称
                        Files_Copy(SbuDir + FSys, Sdir + "\\" + FSys);//如果是文件,则进行递归调用
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }
        #endregion

        #region  获取文件或文件夹的名称
        /// <summary>
        /// 获取文件或文件夹的名称
        /// </summary>
        /// <param dir="string">目录</param>
        /// <param n="int">标识</param>
        /// <returns>返回string对象</returns>
        public string Files_Name(string dir, int n)
        {
            string DF_Name = "";
            if (n == 0)
            {
                string F_N = dir.Substring(dir.LastIndexOf("\\") + 1, dir.LastIndexOf(".") - dir.LastIndexOf("\\") - 1);
                string F_E = dir.Substring(dir.LastIndexOf(".") + 1, dir.Length - dir.LastIndexOf(".") - 1);
                DF_Name = F_N + "." + F_E;
            }
            if (n > 0)
            {
                DF_Name = dir.Substring(dir.LastIndexOf("\\") + 1, dir.Length - dir.LastIndexOf("\\") - 1);
            }
            return DF_Name;
        }
        #endregion

        #region  修改或删除文件夹后在数据库中整理子文件夹和子文件的目录
        /// <summary>
        /// 修改或删除文件夹后在数据库中整理子文件夹和子文件的目录
        /// </summary>
        /// <param Olddir="string">原目录</param>
        /// <param NewName="string">修改后的目录</param>
        /// <param n="int">标识</param>
        public void DFiles_CleanUp(string Olddir, string Newdir, int n)
        {
            string DFsql = "";
            //DataSet DS = dataclass.getDataSet("select NodeID,NodeName,NodePath from Ped where NodePath like '" + Olddir + "%'", "Ped");
            string DF_Name = Files_Name(Newdir, n);
            switch (n)
            {
                case 1:
                    {
                        string olddir = Files_Name(Olddir,n);
                        //OledbHelper.getsqlcom("update HFS set NodeName='" + DF_Name + "' where NodePath like '" + Olddir + "'");
                        OledbHelper.getsqlcom("update casic_hfs set NODEPATH='" + DF_Name + "' where NODEPATH = '" + olddir + "'"); 
                        
                        //DFsql = "update HFS set NodePath=(select REPLACE(NodePath,'" + Olddir + "','" + Newdir + "')) where len(NodePath)=len('" + Olddir + "') or substring(NodePath,len('" + Olddir + "')+1,1)='\\'";
                        //DFsql = "update HFS set NodePath=(select REPLACE(NodePath,'" + olddir + "','" + DF_Name + "')) where len(NodePath)=len('" + olddir + "') or substring(NodePath,len('" + olddir + "')+1,1)='\\'";
                        break;
                    }
                case 2:
                    {
                        DF_Name = Files_Name(Olddir, n);
                        //DFsql = "delete HFS where (len(NodePath)=len('" + Olddir + "') or substring(NodePath,len('" + Olddir + "')+1,1)='\\') and (substring(NodePath,0,len('" + Olddir + "')+1)='" + Olddir + "')";
                        //DFsql = "delete casic_hfs where (len(casic_hfs.\"NODEPATH\")=len('" + DF_Name
                        //    + "') or substring(casic_hfs.\"NODEPATH\",len('" + DF_Name
                        //    + "')+1,1)='\\') and (substring(casic_hfs.\"NODEPATH,0,len('" + DF_Name
                        //    + "')+1)='" + DF_Name + "')";
                        DFsql = "delete casic_hfs where NODEPATH = '" + DF_Name + "'";
                        OledbHelper.getsqlcom(DFsql); 
                        break;
                    }
            }
            //if (n > 0)
            //    OledbHelper.getsqlcom(DFsql);
        }
        #endregion
        
        #region  文件夹禁止使用的字符
        /// <summary>
        /// 文件夹禁止使用的字符
        /// </summary>
        /// <param e="KeyPressEventArgs">键值</param>
        /// <returns>返回string对象</returns>
        public int Files_NameChar(KeyPressEventArgs e)
        {
            int n = 1;
            char[] F_ncs = Path.GetInvalidFileNameChars();
            foreach (char F_nc in F_ncs)
            {
                if (F_nc == e.KeyChar)
                {
                    n = 0;
                    break;
                }
            }
            if (e.KeyChar == '\b')
                n = 1;
            return n;
        }
        #endregion

        #region  调用文件编辑窗体
        /// <summary>
        /// 调用文件夹编辑窗体
        /// </summary>
        /// <param nob="string">判断操作的资料集或文件</param>
        /// <param sender="object">项名称</param>
        /// <param mark="int">标识</param>
        public void FileEdit_form(string nob, object sender , int mark)
        {
            //MessageBox.Show(nob + "==" + mark.ToString());
            Redact_T = nob;
            Redact_N = "";
            Redact_M = "";
            Redact_D = "";
            TreeNode HTreeNode = new TreeNode();
            DataSet DS = new DataSet();
            if (((TreeView)sender).SelectedNode != null)
            {
                HTreeNode = ((TreeView)sender).SelectedNode;
                Redact_N = ((TreeView)sender).SelectedNode.Text;
                Redact_M = ((TreeView)sender).SelectedNode.Tag.ToString();
                DS = OledbHelper.getDataSet("select casic_hfs.\"NODEID\",casic_hfs.\"NODEPATH\","
                    + "casic_hfs.\"NODETYPE\",casic_hfs.\"NODENAME\" from casic_hfs where casic_hfs.\"NODEID\"="
                    + Redact_M, "casic_hfs");
                if (DS.Tables[0].Rows.Count == 0)
                    return;

                Redact_D = DS.Tables[0].Rows[0][1].ToString();// +"\\" + DS.Tables[0].Rows[0][3].ToString();
                  
                int nt = int.Parse(DS.Tables[0].Rows[0][2].ToString());

                //MessageBox.Show(Redact_D+"=!=!="+nt.ToString());
                if (nt != 0 && mark > 0)
                    return;
            }
            Frm_HFSfiles FrmFile  = new Frm_HFSfiles();//实例化Frm_Folder窗体
                FrmSetUp(FrmFile);//调用自定义方法FrmSetUp,对Frm_Radical窗体进行设置
                FrmFile.Tag = mark;
            

            switch (mark)
            {
                case 0: FrmFile.Text = "添加文件"; break;
                case 1: 
                    FrmFile.Text = "修改文件"; 
                    break;
                case 2: 
                    FrmFile.Text = "删除文件";  
                    break;

            }
            if (FrmFile.ShowDialog() == DialogResult.OK)//显示窗体
            {
                switch (mark)
                {
                    case 0:
                        {
                            TreeNode SonNode = new TreeNode("");//实例化一个具有当前节点名称的节点
                            for (int i = 0; i < ADD_LV.Items.Count; i++)
                            {
                                SonNode = new TreeNode(ADD_LV.Items[i].Text);//实例化一个具有当前节点名称的节点
                                SonNode.Tag = int.Parse(ADD_LV.Items[i].Tag.ToString());//在该节点的Tag属性中存放当前信息的主ID号
                                SonNode.ImageIndex = 2;
                                HTreeNode.Nodes.Add(SonNode);//添加该节点
                            }
                            break;
                        }
                    case 1:
                        {
                            HTreeNode.Text = Redact_N;
                            break;
                        }
                    case 2:
                        {
                            HTreeNode.Remove();
                            break;
                        }
                }
            }
            FrmFile.Dispose();

        }
        #endregion

        #region  调用导入导出编辑窗体
        /// <summary>
        /// 调用导入导出编辑窗体
        /// </summary>
        /// <param nob="string">判断是导入或导出窗体</param>
        /// <param sender="object">项名称</param>
        /// <param mark="int">标识</param>
        public void GuideEdit_form(string nob, object sender, int mark)
        {
            Redact_T = nob;
            Redact_N = "";
            Redact_M = "";
            Redact_D = "";
            TreeNode HTreeNode = new TreeNode();
            DataSet DS = new DataSet();
            if (((TreeView)sender).SelectedNode != null)
            {
                HTreeNode = ((TreeView)sender).SelectedNode;
                Redact_N = ((TreeView)sender).SelectedNode.Text;
                Redact_M = ((TreeView)sender).SelectedNode.Tag.ToString();
                DS = OledbHelper.getDataSet("select NODEID,NODEPATH,NODETYPE,NODENAME from casic_hfs where NODEID="
                    + Redact_M, "casic_hfs");
                if (DS.Tables[0].Rows.Count == 0)
                    return;
                Redact_D = DS.Tables[0].Rows[0][1].ToString();
                int nt = int.Parse(DS.Tables[0].Rows[0][2].ToString());
                string filename =  DS.Tables[0].Rows[0][3].ToString();
                 
                string location = "";
                location = Utility.uploadpath + "\\HFS\\" + Redact_D + "\\" + filename;

                Redact_D = location;
                  
                if (nt == 0 && mark != 2)
                    return;
                if (nt > 0 && mark == 2)
                    return;
            }
            Frm_HFSinout FrmInOut = new Frm_HFSinout();//实例化Frm_Folder窗体
            FrmSetUp(FrmInOut);//调用自定义方法FrmSetUp,对Frm_Radical窗体进行设置
            FrmInOut.Tag = mark;
            if (FrmInOut.ShowDialog() == DialogResult.OK)//显示窗体
            {
                if (mark == 0)
                {
                    TreeNode SonNode = new TreeNode(Redact_N);//实例化一个具有当前节点名称的节点
                    SonNode.Tag = int.Parse(Redact_M);//在该节点的Tag属性中存放当前信息的主ID号
                    SonNode.ImageIndex = 0;
                    HTreeNode.Nodes.Add(SonNode);//添加该节点
                    SonNode.Nodes.Add(new TreeNode(""));
                }

            }
            FrmInOut.Dispose();
        }
        #endregion

        #region  调用导入导出编辑窗体
        /// <summary>
        /// 调用导入导出编辑窗体
        /// </summary>
        /// <param STV="TreeView">查询的节点</param>
        /// <param DLV="ListView">显示查找的文件</param>
        /// <param FName="string">查找的文件名</param>
        public void Find_File(TreeView STV, ListView DLV, string FName,int mark)
        {
            string dir = "";
            DataSet DS = new DataSet();
            if (FName == "")
            {
                MessageBox.Show("查找文件名不能为空。");
                return;
            } 
            if (BaseNode != "")
                DS = OledbHelper.getDataSet("select NODEID,NODEPATH,NODETYPE from casic_hfs where NODENAME='" + BaseNode
                    + "' and NODETYPE=2", "casic_hfs");
            else
                DS = OledbHelper.getDataSet("select NODEID,NODEPATH,NODETYPE from casic_hfs where NODEID='" 
                    + int.Parse(Redact_M) + "'", "casic_hfs");

            if (DS.Tables[0].Rows.Count == 0)
            {
                MessageBox.Show("无法对文件进行查找。");
                return;
            }
            if (DS.Tables[0].Rows[0][2].ToString() == "0")
            {
                MessageBox.Show("不可以对单个文件进行查找。");
                return;
            }
            dir = DS.Tables[0].Rows[0][1].ToString();
            string sql = "select NODEID,NODENAME from (select * from casic_hfs "
                + " where NODEPATH like '"+dir+"%') a where NODENAME like '%"+FName
                +"%' and NODETYPE=0";
            //DS = OledbHelper.getDataSet("select NodeID,NodeName from (select * from HFS where NodePath like '" 
            //    + dir + "%') a where NodeName like '%" + FName + "%' and NodeType=0", "HFS");
            DS = OledbHelper.getDataSet(sql,"casic_hfs");
            if (DS.Tables[0].Rows.Count == 0)
            {
                MessageBox.Show("没有查到相关文件。");
                return;
            }
            DLV.Items.Clear();
            for (int i = 0; i < DS.Tables[0].Rows.Count; i++)
            {
                ListViewItem lvi = new ListViewItem(DS.Tables[0].Rows[i][1].ToString());//实例化一个项
                lvi.Tag = int.Parse(DS.Tables[0].Rows[i][0].ToString());
                lvi.ImageIndex = 2;//设置各项的图片
                DLV.Items.Add(lvi);//添加列信息
            }
        }
        #endregion
        
            
    }
}