Example #1
0
        public static void convertZipInFileSystem(string zipfile)
        {
            FileStream _7zfile = File.Create(Path.GetFileNameWithoutExtension(zipfile) + ".7z");

            SevenZip.SevenZipExtractor ze = new SevenZip.SevenZipExtractor(zipfile);
            string tempdirectory          = Path.Combine(Environment.CurrentDirectory, zipfile + "7z");

            Directory.CreateDirectory(tempdirectory);
            ze.ExtractArchive(tempdirectory);
            ze.Dispose();

            SevenZip.SevenZipCompressor _7zc     = new SevenZip.SevenZipCompressor();
            Dictionary <string, string> newentry = new Dictionary <string, string>();

            _7zc.ArchiveFormat      = SevenZip.OutArchiveFormat.SevenZip;
            _7zc.CompressionLevel   = SevenZip.CompressionLevel.High;
            _7zc.CompressionMode    = SevenZip.CompressionMode.Create;
            _7zc.DirectoryStructure = true;
            _7zc.FastCompression    = true;
            Console.WriteLine("Beginning compression.  This will take a while...");
            _7zc.CompressDirectory(tempdirectory, _7zfile);


            _7zfile.Close();
            Directory.Delete(tempdirectory, true);
            Console.WriteLine("Done.");
        }
Example #2
0
        public SevenZipWriter(string path, int compressionlevel)
        {
            this.path             = path;
            this.compressionlevel = compressionlevel;

            svc = new SevenZip.SevenZipCompressor();
            svc.ArchiveFormat = SevenZip.OutArchiveFormat.Zip;

            switch (compressionlevel)
            {
            default:
            case 0: svc.CompressionLevel = SevenZip.CompressionLevel.None; break;

            case 1:
            case 2: svc.CompressionLevel = SevenZip.CompressionLevel.Fast; break;

            case 3:
            case 4: svc.CompressionLevel = SevenZip.CompressionLevel.Low; break;

            case 5:
            case 6: svc.CompressionLevel = SevenZip.CompressionLevel.Normal; break;

            case 7:
            case 8: svc.CompressionLevel = SevenZip.CompressionLevel.High; break;

            case 9: svc.CompressionLevel = SevenZip.CompressionLevel.Ultra; break;
            }
        }
Example #3
0
        public static void convertZipinMemory(string zipfile)
        {
            FileStream _7zfile   = File.Create(Path.GetFileNameWithoutExtension(zipfile) + ".7z");
            Unzipper   unzipfile = new Unzipper(zipfile);

            SevenZip.SevenZipCompressor _7zc     = new SevenZip.SevenZipCompressor();
            Dictionary <string, Stream> newentry = new Dictionary <string, Stream>();

            _7zc.ArchiveFormat         = SevenZip.OutArchiveFormat.SevenZip;
            _7zc.CompressionLevel      = SevenZip.CompressionLevel.High;
            _7zc.CompressionMode       = SevenZip.CompressionMode.Create;
            _7zc.PreserveDirectoryRoot = true;
            _7zc.DirectoryStructure    = true;
            _7zc.FastCompression       = true;

            foreach (string x in unzipfile.GetNextEntry())
            {
                System.IO.MemoryStream extractedzipfileentry = new MemoryStream();
                unzipfile.fz.ExtractFile(x, extractedzipfileentry);
                extractedzipfileentry.Position = 0;

                newentry.Add(x, extractedzipfileentry);
            }
            Console.WriteLine("Loaded {0} entries, beginning compression.  This will take a while...", newentry.Count);
            _7zc.CompressStreamDictionary(newentry, _7zfile);

            unzipfile.Dispose();
            _7zfile.Close();
            Console.WriteLine("Done.");
        }
Example #4
0
        private void CompressByManaged7z(string[] srcfiles, string outFile)
        {
            string dll = string.Empty;

            using (RegistryKey key = Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\Windows NT\\CurrentVersion"))
            {
                if (key != null)
                {
                    Object o = key.GetValue("BuildLabEx");
                    if (o != null)
                    {
                        if ((o as String).ToLower().Contains("amd64"))
                        {
                            CreateFileFromResource("create_sfx.Resources.7zx64.dll", "7zx64.dll");
                            dll = "7zx64.dll";
                        }
                        else
                        {
                            CreateFileFromResource("create_sfx.Resources.7zx86.dll", "7zx86.dll");
                            dll = "7zx86.dll";
                        }
                    }
                }
            }

            SevenZip.SevenZipCompressor.SetLibraryPath(Path.Combine(Directory.GetCurrentDirectory(), dll));
            SevenZip.SevenZipCompressor compressor = new SevenZip.SevenZipCompressor();
            compressor.ArchiveFormat     = SevenZip.OutArchiveFormat.SevenZip;
            compressor.CompressionLevel  = SevenZip.CompressionLevel.Ultra;
            compressor.CompressionMethod = SevenZip.CompressionMethod.Lzma2;
            compressor.CompressionMode   = SevenZip.CompressionMode.Create;
            compressor.CompressFiles(outFile, srcfiles);
            File.Delete(Path.Combine(Directory.GetCurrentDirectory(), dll));
        }
Example #5
0
        private static byte[] Compress(string filename)
        {
            SevenZip.SevenZipExtractor.SetLibraryPath(Path.Combine(runningFolder, IntPtr.Size == 8 ? @"tools\7z64.dll" : @"tools\7z.dll"));
            var arch       = new MemoryStream();
            var compressor = new SevenZip.SevenZipCompressor();

            compressor.CompressionLevel = SevenZip.CompressionLevel.High;
            compressor.CompressFiles(arch, filename);
            arch.Seek(0, SeekOrigin.Begin);
            var result = new byte[arch.Length];

            arch.Read(result, 0, result.Length);
            return(result);
        }
Example #6
0
        public SevenZipWriter(string path, int compressionlevel)
        {
            _path             = path;
            _compressionlevel = compressionlevel;

            _svc = new SevenZip.SevenZipCompressor {
                ArchiveFormat = SevenZip.OutArchiveFormat.Zip
            };

            switch (compressionlevel)
            {
            default:
            case 0:
                _svc.CompressionLevel = SevenZip.CompressionLevel.None;
                break;

            case 1:
            case 2:
                _svc.CompressionLevel = SevenZip.CompressionLevel.Fast;
                break;

            case 3:
            case 4:
                _svc.CompressionLevel = SevenZip.CompressionLevel.Low;
                break;

            case 5:
            case 6:
                _svc.CompressionLevel = SevenZip.CompressionLevel.Normal;
                break;

            case 7:
            case 8:
                _svc.CompressionLevel = SevenZip.CompressionLevel.High;
                break;

            case 9:
                _svc.CompressionLevel = SevenZip.CompressionLevel.Ultra;
                break;
            }
        }
Example #7
0
        public SevenZipWriter(string path, int compressionlevel)
        {
            this.path = path;
            this.compressionlevel = compressionlevel;

            svc = new SevenZip.SevenZipCompressor();
            svc.ArchiveFormat = SevenZip.OutArchiveFormat.Zip;

            switch (compressionlevel)
            {
                default:
                case 0: svc.CompressionLevel = SevenZip.CompressionLevel.None; break;
                case 1:
                case 2: svc.CompressionLevel = SevenZip.CompressionLevel.Fast; break;
                case 3:
                case 4: svc.CompressionLevel = SevenZip.CompressionLevel.Low; break;
                case 5:
                case 6: svc.CompressionLevel = SevenZip.CompressionLevel.Normal; break;
                case 7:
                case 8: svc.CompressionLevel = SevenZip.CompressionLevel.High; break;
                case 9: svc.CompressionLevel = SevenZip.CompressionLevel.Ultra; break;
            }
        }
Example #8
0
        /// <summary>
        /// 按案卷上报
        /// </summary>
        /// <returns></returns>
        private bool?ConfirmSplitForfrmArchive()
        {
            if (txtLoc.Text == "")
            {
                TXMessageBoxExtensions.Info("请选择导出文件的存储路径!");
                txtLoc.Focus();
                return(null);
            }
            string destFilename = Globals.Projectname;

            destFolder = txtLoc.Text;

            string dest_temp = Path.GetDirectoryName(txtLoc.Text);

            if (!Directory.Exists(dest_temp))
            {
                TXMessageBoxExtensions.Info("存储的路径不存在!");
                return(null);
            }

            double             projectSize = Convert.ToDouble(DirectoryInfoCommon.GetDirectorySpace(Application.StartupPath + "\\Project\\" + Globals.ProjectNO) / Convert.ToDouble(1024 * 1024 * 1024));
            ReadWriteAppConfig config      = new ReadWriteAppConfig();

            if (config.Read("Upload_ProjectSize") == "")
            {
                config.Write("Upload_ProjectSize", "4");
            }
            string upload_size = config.Read("Upload_ProjectSize");

            if (projectSize > Convert.ToDouble(upload_size))
            {
                DialogResult dresult = TXMessageBoxExtensions.Question("上报工程大于" + upload_size + "G,当前工程大小为:" + System.Math.Round(projectSize, 2) + "G \r\n\n 【温馨提示:工程太大,生成移交文件需要比较长得时间】  \r\n\n 是否继续生成移交?");
                if (dresult != DialogResult.OK)
                {
                    return(null);
                }
            }
            else if (MyCommon.CheckDisk(destFolder) < projectSize)
            {
                //硬盘空间不足
                TXMessageBoxExtensions.Info("上报工程大小为:" + System.Math.Round(projectSize, 2) + "G 保存目录硬盘空间不足,无法生成! \r\n 【温馨提示:请选择比较空闲的盘符】");
                txtLoc.Focus();
                return(null);
            }

            tempFullName = dest_temp + "\\" + Guid.NewGuid().ToString();
            if (System.IO.Directory.Exists(tempFullName))
            {
                MyCommon.DeleteAndCreateEmptyDirectory(tempFullName, false);
            }
            MyCommon.DeleteAndCreateEmptyDirectory(tempFullName);

            MyCommon.DeleteAndCreateEmptyDirectory(destFolder, false);
            MyCommon.DeleteAndCreateEmptyDirectory(destFolder, true);

            panelBottom.Visible = true;
            panelTop.Visible    = false;
            Application.DoEvents();
            butClose.Enabled = false;
            ERM.CBLL.CreateSip projectFactory = new ERM.CBLL.CreateSip(Globals.ProjectNO);
            //DataSet dsFinalArchive = projectFactory.GetListArchive(Globals.ProjectNO, "");
            DataSet dsFinalArchive = new Archive().pb_setXmlInfo();

            if (dsFinalArchive.Tables.Count < 1 || dsFinalArchive.Tables[0].Rows.Count < 1)
            {
                TXMessageBoxExtensions.Info("没有任何案卷可以移交!");
                return(false);
            }
            int  count_FinalArchive = dsFinalArchive.Tables[0].Rows.Count;
            bool checkfile_flag     = true;

            for (int i = 0; i < count_FinalArchive; i++)
            {
                BLL.T_FileList_BLL     fileBLL  = new ERM.BLL.T_FileList_BLL();
                IList <MDL.T_FileList> fileList = fileBLL.FindByArchiveID2(dsFinalArchive.Tables[0].Rows[i]["案卷ID"].ToString(), Globals.ProjectNO);
                foreach (MDL.T_FileList obj in fileList)
                {
                    if (obj.selected == 1 || obj.filepath == null || obj.filepath == "")
                    {
                        ConvertAllEFileToPDF(obj.FileID);
                    }
                    else
                    {
                        string tFilePath = obj.filepath.Replace("MPDF\\", "");
                        string sourMfile = Globals.ProjectPath + obj.filepath;
                        if (!System.IO.File.Exists(sourMfile))
                        {
                            ConvertAllEFileToPDF(obj.FileID);
                        }
                    }
                    IList <MDL.T_CellAndEFile> cellList   = (new ERM.BLL.T_CellAndEFile_BLL()).FindByGdFileID(obj.FileID, Globals.ProjectNO);
                    ERM.MDL.T_FileList         file_model = (new ERM.BLL.T_FileList_BLL()).Find(obj.FileID, Globals.ProjectNO);
                    if ((file_model.filepath == null || file_model.filepath == "") &&
                        cellList.Count > 0)
                    {
                        TXMessageBoxExtensions.Info("提示:文件【" + obj.gdwj + "】电子文件信息有误!无法移交,请审查");
                        checkfile_flag = false;
                        break;
                    }
                }
                if (!checkfile_flag)
                {
                    break;
                }
            }
            if (!checkfile_flag)
            {
                return(false);
            }

            progressBar2.Maximum = count_FinalArchive;
            progressBar2.Minimum = 0;
            progressBar2.MarqueeAnimationSpeed = 1000;
            progressBar2.Step = 1;
            lblMsg.Text       = "正在输出元数据信息...";
            Application.DoEvents();

            GetListArchiveXML(projectFactory, tempFullName);
            try
            {
                for (int i = 0; i < count_FinalArchive; i++)
                {
                    if (!Directory.Exists(tempFullName))
                    {
                        MyCommon.DeleteAndCreateEmptyDirectory(tempFullName, true);
                    }
                    //20120530 屏蔽XML文件
                    GetProjectXML(projectFactory, tempFullName);

                    if (Convert.ToBoolean(Properties.Settings.Default.SipIncludeDoc))
                    {
                        //20120530 屏蔽XML文件
                        GetListArchiveXMLEx(dsFinalArchive.Tables[0].Rows[i]["案卷ID"].ToString(), tempFullName);
                        GetDocumentXMLEx(dsFinalArchive.Tables[0].Rows[i]["案卷ID"].ToString(), tempFullName);

                        BLL.T_FileList_BLL     fileBLL  = new ERM.BLL.T_FileList_BLL();
                        IList <MDL.T_FileList> fileList = fileBLL.FindByArchiveID2(dsFinalArchive.Tables[0].Rows[i]["案卷ID"].ToString(), Globals.ProjectNO);
                        foreach (MDL.T_FileList obj in fileList)
                        {
                            //20120530 屏蔽XML文件
                            //getDocModel(obj);
                            getDocModel_NEW(obj, tempFullName);
                        }
                    }
                    lblMsg.Text = "正在对数据包进行封装...";
                    Application.DoEvents();

                    if (System.IO.File.Exists(tempFullName + "\\index.dat"))//Application.StartupPath + "\\temp\\index.dat"
                    {
                        System.IO.File.Move(tempFullName + "\\index.dat", destFolder + "\\index.dat");

                        string gcInfo  = System.IO.File.ReadAllText(tempFullName + "\\a#sgwj_gc.xml", Encoding.GetEncoding("gb2312"));
                        string docList = System.IO.File.ReadAllText(destFolder + "\\index.dat");
                        gcInfo = gcInfo.Replace("</项目工程信息>", "<ArchiveFileList>" + docList + "</ArchiveFileList></项目工程信息>");
                        System.IO.File.WriteAllText(destFolder + "\\index.dat", gcInfo, Encoding.GetEncoding("gb2312"));
                    }

                    SevenZip.SevenZipCompressor.SetLibraryPath(Application.StartupPath + "\\7z.dll");
                    SevenZip.SevenZipCompressor tmp = new SevenZip.SevenZipCompressor();
                    {
                        tmp.ArchiveFormat = SevenZip.OutArchiveFormat.Zip;
                        tmp.CompressDirectory(tempFullName, destFolder + "\\" + dsFinalArchive.Tables[0].Rows[i]["案卷ID"].ToString() + ".sip");
                    }
                    MyCommon.DeleteAndCreateEmptyDirectory(tempFullName, false);
                    progressBar2.Value = progressBar2.Value + 1;
                }
            }
            catch (Exception ex)
            {
                MyCommon.DeleteAndCreateEmptyDirectory(tempFullName, false);
                TXMessageBoxExtensions.Info("封装数据时发生意外错误!错误002");
                MyCommon.WriteLog("生成移交文件时失败!错误信息:" + ex.Message);
                return(false);
            }
            butClose.Text    = "关闭";
            butClose.Enabled = true;
            TXMessageBoxExtensions.Info("已经成功生成上报文件!");
            return(true);
        }
Example #9
0
        private bool StartRemove(string saveLoc, System.ComponentModel.BackgroundWorker _bgWorker)
        {
            string destFilename = Globals.Projectname;

            destFolder = saveLoc;

            string dest_temp = Path.GetDirectoryName(saveLoc);

            tempFullName = dest_temp + "\\" + Guid.NewGuid().ToString();
            if (System.IO.Directory.Exists(tempFullName))
            {
                MyCommon.DeleteAndCreateEmptyDirectory(tempFullName, false);
            }
            MyCommon.DeleteAndCreateEmptyDirectory(tempFullName);

            MyCommon.DeleteAndCreateEmptyDirectory(destFolder, false);
            MyCommon.DeleteAndCreateEmptyDirectory(destFolder, true);

            if (Index_temp > 100)
            {
                Index_temp = 0;
            }
            _bgWorker.ReportProgress(Index_temp++);


            ERM.CBLL.CreateSip projectFactory = new ERM.CBLL.CreateSip(Globals.ProjectNO);
            // DataSet dsFinalArchive = projectFactory.GetListArchive(Globals.ProjectNO, "");
            DataSet dsFinalArchive = new Archive().pb_setXmlInfo();

            if (dsFinalArchive.Tables.Count < 1 || dsFinalArchive.Tables[0].Rows.Count < 1)
            {
                TXMessageBoxExtensions.Info("没有任何案卷可以移交!");
                return(false);
            }
            int count_FinalArchive = dsFinalArchive.Tables[0].Rows.Count;

            //DataSet dsFinalArchive_temp = projectFactory.GetListArchive(Globals.ProjectNO, "");
            DataSet dsFinalArchive_temp = dsFinalArchive;

            dsFinalArchive_temp.DataSetName         = "案卷信息";
            dsFinalArchive_temp.Tables[0].TableName = "记录";

            string       _filename = tempFullName + "\\index.dat";
            StreamWriter w1        = new StreamWriter(_filename, false, Encoding.Default);

            if (dsFinalArchive_temp != null && dsFinalArchive_temp.Tables.Count > 0 && dsFinalArchive_temp.Tables[0].Rows.Count > 0)
            {
                for (int i1 = 0; i1 < dsFinalArchive_temp.Tables[0].Rows.Count; i1++)
                {
                    w1.WriteLine("<FileList><File>" + dsFinalArchive_temp.Tables[0].Rows[i1][0].ToString() + ".sip</File>");
                    w1.WriteLine("<Title>" + dsFinalArchive_temp.Tables[0].Rows[i1]["案卷题名"].ToString() + "</Title></FileList>");
                }
            }
            w1.Flush();
            w1.Close();

            if (Index_temp > 100)
            {
                Index_temp = 0;
            }
            _bgWorker.ReportProgress(Index_temp++);

            try
            {
                for (int i = 0; i < count_FinalArchive; i++)
                {
                    if (Index_temp > 100)
                    {
                        Index_temp = 0;
                    }
                    _bgWorker.ReportProgress(Index_temp++);

                    if (!Directory.Exists(tempFullName))
                    {
                        MyCommon.DeleteAndCreateEmptyDirectory(tempFullName, true);
                    }

                    StreamWriter gc = new StreamWriter(tempFullName + "\\a#sgwj_gc.xml", false, Encoding.Default);
                    gc.WriteLine("<?xml version=\"1.0\" encoding=\"gb2312\" standalone=\"no\"?>");
                    gc.WriteLine("<项目工程信息>");
                    gc.WriteLine("  <项目信息>");
                    DataSet   ds    = new Item().pb_setXmlInfo(new T_Projects_BLL().Find(Globals.ProjectNO).ItemID);
                    Hashtable _Item = new Hashtable();
                    if (ds.Tables.Count > 0)
                    {
                        for (int n = 0; n < ds.Tables[0].Rows.Count; n++)
                        {
                            for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
                            {
                                _Item.Add(ds.Tables[0].Columns[j].ColumnName, ds.Tables[0].Rows[n][j].ToString());
                            }
                        }

                        foreach (System.Collections.DictionaryEntry objDE in _Item)
                        {
                            if (_Item[objDE.Key] != null)
                            {
                                if (_Item[objDE.Key].GetType() != typeof(System.String[]))
                                {
                                    gc.WriteLine("    <" + objDE.Key + ">" + objDE.Value + "</" + objDE.Key + ">");
                                }
                                else
                                {
                                    gc.WriteLine("    <" + objDE.Key + ">" + ((string[])_Item[objDE.Key])[0] + "</" + objDE.Key + ">");
                                }
                            }
                            else
                            {
                                gc.WriteLine("    <" + objDE.Key + "></" + objDE.Key + ">");
                            }
                        }
                    }
                    gc.WriteLine("  </项目信息>");
                    gc.WriteLine("  <工程信息>");
                    Hashtable _detail = new Hashtable();
                    DataSet   ds1     = new ERM.UI.Common.XmlMapping.Project().pb_setXmlInfo(new T_Projects_BLL().Find(Globals.ProjectNO).ProjectCategory);
                    if (ds1.Tables.Count > 0)
                    {
                        for (int n = 0; n < ds1.Tables[0].Rows.Count; n++)
                        {
                            for (int j = 0; j < ds1.Tables[0].Columns.Count; j++)
                            {
                                _detail.Add(ds1.Tables[0].Columns[j].ColumnName, ds1.Tables[0].Rows[n][j].ToString());
                            }
                        }

                        foreach (System.Collections.DictionaryEntry objDE in _detail)
                        {
                            if (_detail[objDE.Key] != null)
                            {
                                if (_detail[objDE.Key].GetType() != typeof(System.String[]))
                                {
                                    gc.WriteLine("    <" + objDE.Key + ">" + objDE.Value + "</" + objDE.Key + ">");
                                }
                                else
                                {
                                    gc.WriteLine("    <" + objDE.Key + ">" + ((string[])_detail[objDE.Key])[0] + "</" + objDE.Key + ">");
                                }
                            }
                            else
                            {
                                gc.WriteLine("    <" + objDE.Key + "></" + objDE.Key + ">");
                            }
                        }
                        gc.WriteLine("  </工程信息>");
                        gc.WriteLine("</项目工程信息>");
                        gc.Flush();
                        gc.Close();
                    }

                    if (Convert.ToBoolean(Properties.Settings.Default.SipIncludeDoc))
                    {
                        #region ==================================
                        //20120530 屏蔽XML文件

                        //DataSet dsFinalArchive_temp1 = projectFactory.GetListArchive(Globals.ProjectNO, dsFinalArchive.Tables[0].Rows[i]["案卷ID"].ToString());
                        DataSet dsFinalArchive_temp1 = new Archive().pb_setXmlInfo(Globals.ProjectNO, dsFinalArchive.Tables[0].Rows[i]["案卷ID"].ToString());
                        dsFinalArchive_temp1.DataSetName         = "案卷信息";
                        dsFinalArchive_temp1.Tables[0].TableName = "记录";

                        _filename = tempFullName + "\\a#sgwj_file.xml";
                        if (System.IO.File.Exists(_filename))
                        {
                            try
                            {
                                System.IO.File.Delete(_filename);
                            }
                            catch { }
                        }

                        gc = new StreamWriter(_filename, true, Encoding.Default);
                        gc.WriteLine("<?xml version=\"1.0\" encoding=\"gb2312\" standalone=\"no\"?>");
                        gc.Flush();
                        gc.Close();
                        System.IO.FileStream     stream_archive    = new System.IO.FileStream(_filename, System.IO.FileMode.Append);
                        System.Xml.XmlTextWriter xmlWriter_archive = new System.Xml.XmlTextWriter(stream_archive, System.Text.Encoding.Default);
                        dsFinalArchive_temp1.WriteXml(xmlWriter_archive);
                        xmlWriter_archive.Close();

                        #endregion

                        #region ===========================

                        //DataSet dsFinalFile = projectFactory.GetListFile(Globals.ProjectNO,
                        //  dsFinalArchive.Tables[0].Rows[i]["案卷ID"].ToString());
                        DataSet dsFinalFile = new ERM.UI.Common.XmlMapping.File().pb_setXmlInfo("pb_queryByFileNo", dsFinalArchive.Tables[0].Rows[i]["案卷ID"].ToString(), Globals.ProjectNO);

                        dsFinalFile.DataSetName         = "文件信息";
                        dsFinalFile.Tables[0].TableName = "记录";

                        _filename = tempFullName + "\\a#sgwj_document.xml";
                        if (System.IO.File.Exists(_filename))
                        {
                            try
                            {
                                System.IO.File.Delete(_filename);
                            }
                            catch { }
                        }

                        gc = new StreamWriter(_filename, true, Encoding.Default);
                        gc.WriteLine("<?xml version=\"1.0\" encoding=\"gb2312\" standalone=\"no\"?>");
                        gc.Flush();
                        gc.Close();
                        System.IO.FileStream     stream_file    = new System.IO.FileStream(_filename, System.IO.FileMode.Append);
                        System.Xml.XmlTextWriter xmlWriter_file = new System.Xml.XmlTextWriter(stream_file, System.Text.Encoding.Default);
                        dsFinalFile.WriteXml(xmlWriter_file);
                        xmlWriter_file.Close();

                        #endregion

                        BLL.T_FileList_BLL fileBLL = new ERM.BLL.T_FileList_BLL();
                        //IList<MDL.T_FileList> fileList = fileBLL.FindByArchiveID2(dsFinalArchive.Tables[0].Rows[i]["案卷ID"].ToString(), Globals.ProjectNO);
                        DataSet fileList = new ERM.UI.Common.XmlMapping.File().pb_setXmlInfo("pb_FindByArchiveID2", dsFinalArchive.Tables[0].Rows[i]["案卷ID"].ToString(), Globals.ProjectNO);
                        if (fileList.Tables.Count > 0)
                        {
                            for (int j = 0; j < fileList.Tables[0].Rows.Count; j++)
                            {
                                DataRow obj = fileList.Tables[0].Rows[j];
                                if (Index_temp > 100)
                                {
                                    Index_temp = 0;
                                }
                                _bgWorker.ReportProgress(Index_temp++);

                                string FileID = obj["FileID"].ToString();
                                if (obj["filepath"] != null)
                                {
                                    string tFilePath = obj["filepath"].ToString().Replace("MPDF\\", "");
                                    string decMfile  = tempFullName + "\\" + tFilePath;
                                    string sourMfile = Globals.ProjectPath + obj["filepath"];
                                    try
                                    {
                                        if (System.IO.File.Exists(sourMfile))
                                        {
                                            System.IO.File.Copy(sourMfile, decMfile, true);
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        MyCommon.WriteLog("生成移交文件时,拷贝文件失败!错误信息:" + ex.Message);
                                    }
                                }
                                BLL.T_CellAndEFile_BLL     cellBLL  = new ERM.BLL.T_CellAndEFile_BLL();
                                IList <MDL.T_CellAndEFile> cellList = cellBLL.FindByFileID(FileID, Globals.ProjectNO, 1);

                                foreach (MDL.T_CellAndEFile obj2 in cellList)
                                {
                                    string yswjpath = obj2.filepath.Replace("ODOC\\", "");

                                    string dec  = tempFullName + "\\" + yswjpath;
                                    string sour = Globals.ProjectPath + obj2.filepath;
                                    try
                                    {
                                        if (System.IO.File.Exists(sour))
                                        {
                                            System.IO.File.Copy(sour, dec, true);
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        MyCommon.WriteLog("生成移交文件时,拷贝原文件失败!错误信息:" + ex.Message);
                                    }
                                }
                            }
                        }
                    }
                    if (System.IO.File.Exists(tempFullName + "\\index.dat"))
                    {
                        System.IO.File.Move(tempFullName + "\\index.dat", destFolder + "\\index.dat");

                        string gcInfo  = System.IO.File.ReadAllText(tempFullName + "\\a#sgwj_gc.xml", Encoding.GetEncoding("gb2312"));
                        string docList = System.IO.File.ReadAllText(destFolder + "\\index.dat");
                        gcInfo = gcInfo.Replace("</项目工程信息>", "<ArchiveFileList>" + docList + "</ArchiveFileList></项目工程信息>");
                        System.IO.File.WriteAllText(destFolder + "\\index.dat", gcInfo, Encoding.GetEncoding("gb2312"));
                    }
                    SevenZip.SevenZipCompressor.SetLibraryPath(Application.StartupPath + "\\7z.dll");
                    SevenZip.SevenZipCompressor tmp = new SevenZip.SevenZipCompressor();
                    tmp.ArchiveFormat = SevenZip.OutArchiveFormat.Zip;
                    tmp.CompressDirectory(tempFullName, destFolder + "\\" + dsFinalArchive.Tables[0].Rows[i]["案卷ID"].ToString() + ".sip");

                    MyCommon.DeleteAndCreateEmptyDirectory(tempFullName, false);
                }
            }
            catch (Exception ex)
            {
                MyCommon.DeleteAndCreateEmptyDirectory(tempFullName, false);
                TXMessageBoxExtensions.Info("封装数据时发生意外错误!错误002");
                MyCommon.WriteLog("生成移交文件时失败!错误信息:" + ex.Message);
                return(false);
            }
            return(true);
        }
Example #10
0
        private void btnSendDebug_Click(object sender, EventArgs e)
        {
            string szdll = "";

            if (Environment.Is64BitProcess)
            {
                szdll = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "7z.dll");
            }
            else
            {
                szdll = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "7z32.dll");
            }


            if (btnSendDebug.Text != "Fetch data") //If not in receive mode
            {
                string password = Guid.NewGuid().ToString().Replace("-", "").Replace("{", "").Replace("}", "").ToUpper();

                string relativedir  = Directory.GetCurrentDirectory();
                string tempdebugdir = Path.Combine(relativedir, "debug");
                string tempzipfile  = tempdebugdir + ".7z";

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

                string[] debugFiles = Directory.GetFiles(tempdebugdir);
                foreach (string file in debugFiles)
                {
                    File.Delete(file);
                }

                if (File.Exists(tempzipfile))
                {
                    File.Delete(tempzipfile);
                }

                //Exporting side
                string sideFile = Path.Combine(tempdebugdir, "SIDE.txt");
                File.WriteAllText(sideFile, System.Diagnostics.Process.GetCurrentProcess().ProcessName);

                //Exporting Stacktrace
                var           _ex = ex;
                StringBuilder sb  = new StringBuilder();
                sb.AppendLine($"Exception: {ex.Message}\n{ex.StackTrace}");
                while (_ex.InnerException != null)
                {
                    sb.AppendLine();
                    sb.AppendLine($"Inner Exception: {ex.Message}\n{ex.StackTrace}");
                    _ex = _ex.InnerException;
                }
                tbStackTrace.Text = sb.ToString();
                string stacktracefile = Path.Combine(tempdebugdir, "STACKTRACE.TXT");
                File.WriteAllText(stacktracefile, sb.ToString());

                //Exporting data
                string data = Path.Combine(tempdebugdir, "DATA.TXT");
                sb = new StringBuilder();
                foreach (var key in ex.Data.Keys)
                {
                    sb.AppendLine(key + " : " + ex.Data[key]);
                }
                File.WriteAllText(data, sb.ToString());

                //Exporting Specs from RTC's perspective
                string rtcfile = Path.Combine(tempdebugdir, "RTC_PERSPECTIVE.TXT");
                File.WriteAllText(rtcfile, getRTCInfo());

                //Exporting Specs from the Emu's perspective
                string emufile = Path.Combine(tempdebugdir, "EMU_PERSPECTIVE.txt");
                File.WriteAllText(emufile, getEmuInfo());

                //Copying the log files
                if (AllSpec.CorruptCoreSpec?["RTCDIR"] is string rtcdir)
                {
                    string rtcLog       = Path.Combine(rtcdir, "RTC_LOG.txt");
                    string rtcLogOutput = Path.Combine(tempdebugdir, "RTC_LOG.txt");
                    //lock (NetCore_Extensions.ConsoleHelper.con.FileWriter)
                    //{
                    if (File.Exists(rtcLog))
                    {
                        File.Copy(rtcLog, rtcLogOutput, true);
                    }
                    //}
                }

                if (AllSpec.VanguardSpec?["EMUDIR"] is string emudir)
                {
                    string emuLog       = Path.Combine(emudir, "EMU_LOG.txt");
                    string emuLogOutput = Path.Combine(tempdebugdir, "EMU_LOG.txt");
                    //lock (NetCore_Extensions.ConsoleHelper.con.FileWriter)
                    //{
                    if (File.Exists(emuLog))
                    {
                        File.Copy(emuLog, emuLogOutput, true);
                    }
                    //}
                }

                SevenZip.SevenZipBase.SetLibraryPath(szdll);
                var comp = new SevenZip.SevenZipCompressor
                {
                    CompressionMode = SevenZip.CompressionMode.Create,
                    TempFolderPath  = Path.GetTempPath(),
                    ArchiveFormat   = SevenZip.OutArchiveFormat.SevenZip
                };
                comp.CompressDirectory(tempdebugdir, tempzipfile, false, password);

                string filename = CloudTransfer.CloudSave(tempzipfile);
                tbKey.Text = filename + "-" + password;

                btnSendDebug.Enabled = false;

                if (File.Exists(tempzipfile))
                {
                    File.Delete(tempzipfile);
                }
            }
            else
            {
                if (tbKey.Text.Length != 65)
                {
                    MessageBox.Show("Invalid key");
                    return;
                }

                string[] keyparts = tbKey.Text.Split('-');
                string   filename = keyparts[0];
                string   password = keyparts[1];

                string downloadfilepath = CloudTransfer.CloudLoad(filename, password);

                if (downloadfilepath == null)
                {
                    return;
                }

                string extractpath = downloadfilepath.Replace(".7z", "");

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

                string[] debugFiles = Directory.GetFiles(extractpath);
                foreach (string file in debugFiles)
                {
                    File.Delete(file);
                }


                SevenZip.SevenZipCompressor.SetLibraryPath(szdll);
                var decomp = new SevenZip.SevenZipExtractor(downloadfilepath, password, SevenZip.InArchiveFormat.SevenZip);
                decomp.ExtractArchive(extractpath);

                File.Delete(downloadfilepath);
                Process.Start(extractpath);
            }
        }
Example #11
0
        public string fileExport(string fileType, string fileName, char delimiter = ',')
        {
            DataSetFileExport exp = new DataSetFileExport();
            bool   expSuccess     = false;
            string exportText     = "";

            //Excel(.xlsx)
            //CSV
            //Tab Delimited
            //Choose Delimiter
            //XML
            //Multiset

            switch (fileType)
            {
            case "Excel (.xlsx)":
                exportText = DataSetFileExport.SendDataTableToExcel(currentTable, fileName);
                break;

            case "CSV":
                expSuccess = exp.DataTable2CSV(currentTable, fileName);
                break;

            case "Tab Delimited":
                expSuccess = exp.DataTable2txt(currentTable, fileName, '\t');
                break;

            case "Choose Delimiter":
                expSuccess = exp.DataTable2txt(currentTable, fileName, delimiter);
                break;

            case "XML":
                try
                {
                    currentTable.WriteXml(fileName, XmlWriteMode.WriteSchema);
                }
                catch (Exception ex)
                {
                    exportText = ex.Message.ToString();
                }
                break;

            case "Multiset":
                exp.dataTable2Multiset(ref currentTable, fileName);
                SevenZip.SevenZipCompressor szip = new SevenZip.SevenZipCompressor();
                szip.ScanOnlyWritable = true;
                szip.CompressFiles(fileName + ".7z", fileName);
                System.IO.File.Delete(fileName);
                expSuccess = true;
                break;

            default:
                return("No file type selected!");
            }

            if (expSuccess)
            {
                return("File export success");
            }
            else
            {
                return("File export failed");
            }
        }
Example #12
0
        /// <summary>
        /// Compresses the chosen map.
        /// </summary>
        /// <param name="worker_thread">The worker hred this function is being run by</param>
        /// <param name="args">Generic variable for passing an arguments class</param>
        public static void CompressMap(BackgroundWorker worker_thread, object args)
        {
            if (args == null)
            {
                throw new Exception("No arguments or an invalid arguments class passed to CompressMap");
            }

            MapCompressorArgs arguments = (MapCompressorArgs)args;

            // create the output folders
            string output_folder;

            if (!BuildOutputFolders(arguments.Map, arguments.PartsFolder, out output_folder))
            {
                throw new Exception("failed to create the output directories for map compression");
            }

            string map_filename = Path.GetFileNameWithoutExtension(arguments.Map);

            MapDownloadList.MapDownloadClass  map_entry = null;
            List <FileSplitter.FileListEntry> file_list = null;

            uint UncompressedSize;
            uint CompressedSize;

            using (FileStream map_file = File.OpenRead(arguments.Map))
                UncompressedSize = (uint)map_file.Length;

            using (MemoryStream compressed_file = new MemoryStream())
            {
                try
                {
                    SevenZip.SevenZipCompressor compressor = new SevenZip.SevenZipCompressor();

                    compressor.ArchiveFormat     = SevenZip.OutArchiveFormat.SevenZip;
                    compressor.CompressionLevel  = SevenZip.CompressionLevel.Ultra;
                    compressor.CompressionMethod = SevenZip.CompressionMethod.Lzma;
                    compressor.CompressionMode   = SevenZip.CompressionMode.Create;

                    // compress the map
                    compressor.CompressFiles(compressed_file, arguments.Map);
                }
                catch (Exception e)
                {
                    Exception temp = e;
                    do
                    {
                        MessageBox.Show(temp.Message);
                    } while ((temp = temp.InnerException) != null);
                }

                string archive_filename = string.Format("{0}.7z", map_filename);

                CompressedSize = (uint)compressed_file.Length;

                // save the archive parts, encrypting if necessary
                file_list = FileSplitter.SaveStream(compressed_file,
                                                    1048576,
                                                    output_folder,
                                                    archive_filename,
                                                    arguments.EncryptArchive,
                                                    arguments.ServerPassword);
            }

            // create the map entry
            if (file_list != null)
            {
                map_entry = new MapDownloadList.MapDownloadClass();

                map_entry.Algorithm        = MapDownloadList.MapDownloadCompressionFormat.SevenZip;
                map_entry.Name             = Path.GetFileName(arguments.Map);
                map_entry.MD5              = BlamLib.Cryptography.MD5.GenerateFileMD5String(arguments.Map);
                map_entry.UncompressedSize = UncompressedSize;
                map_entry.CompressedSize   = CompressedSize;
                map_entry.HostDirectory    = Path.GetFileNameWithoutExtension(arguments.Map);

                map_entry.Parts = new List <MapDownloadList.MapPartClass>();

                // add all of the map parts to the map entry
                foreach (var file in file_list)
                {
                    MapDownloadList.MapPartClass part = new MapDownloadList.MapPartClass();

                    part.Name  = Path.GetFileName(file.Location);
                    part.MD5   = file.MD5;
                    part.Index = file.Index;
                    part.Size  = file.Size;
                    if (file.Encrypted)
                    {
                        part.Encrypted      = true;
                        part.UnencryptedMD5 = file.UnencryptedMD5;
                    }

                    map_entry.Parts.Add(part);
                }
            }

            // save the map entry to a map entry include xml
            MapDownloadList.MapIncludeClass map_include = new MapDownloadList.MapIncludeClass();

            map_include.MapDownload = map_entry;

            string xml_path = Path.Combine(arguments.DefinitionsFolder, String.Format("{0}.xml", map_filename));

            Util.SerializeObjectXML(map_include, xml_path);
        }
Example #13
0
 private void Form1_Load(object sender, EventArgs e)
 {
     SevenZip.SevenZipCompressor c = new SevenZip.SevenZipCompressor();
 }
Example #14
0
		/// <summary>
		/// Compresses the chosen map.
		/// </summary>
		/// <param name="worker_thread">The worker hred this function is being run by</param>
		/// <param name="args">Generic variable for passing an arguments class</param>
		public static void CompressMap(BackgroundWorker worker_thread, object args)
		{
			MapCompressorArguments arguments = args as MapCompressorArguments;

			if (arguments == null) throw new Exception("No arguments or an invalid arguments class passed to CompressMap");

			// create the output folders
			string output_folder;

			if (!BuildOutputFolders(arguments.Map, arguments.PartsFolder, out output_folder))
				throw new Exception("failed to create the output directories for map compression");

			string map_filename = Path.GetFileNameWithoutExtension(arguments.Map);

			MapDownloadList.MapDownloadClass map_entry = null;
			List<FileSplitter.FileListEntry> file_list = null;

			uint UncompressedSize;
			uint CompressedSize;

			using(FileStream map_file = File.OpenRead(arguments.Map))
				UncompressedSize = (uint)map_file.Length;

			using (MemoryStream compressed_file = new MemoryStream())
			{
				try
				{
					SevenZip.SevenZipCompressor compressor = new SevenZip.SevenZipCompressor();

					compressor.ArchiveFormat = SevenZip.OutArchiveFormat.SevenZip;
					compressor.CompressionLevel = SevenZip.CompressionLevel.Ultra;
					compressor.CompressionMethod = SevenZip.CompressionMethod.Lzma;
					compressor.CompressionMode = SevenZip.CompressionMode.Create;

					// compress the map
					compressor.CompressFiles(compressed_file, arguments.Map);
				}
				catch (Exception e)
				{
					Exception temp = e;
					do
					{
						MessageBox.Show(temp.Message);
					} while ((temp = temp.InnerException) != null);
				}

				string archive_filename = string.Format("{0}.7z", map_filename);

				CompressedSize = (uint)compressed_file.Length;

				// save the archive parts, encrypting if necessary
				file_list = FileSplitter.SaveStream(compressed_file,
					1048576,
					output_folder,
					archive_filename,
					arguments.EncryptArchive,
					arguments.ServerPassword);
			}

			// create the map entry
			if (file_list != null)
			{
				map_entry = new MapDownloadList.MapDownloadClass();

				map_entry.Algorithm = MapDownloadList.MapDownloadCompressionFormat.SevenZip;
				map_entry.Name = Path.GetFileName(arguments.Map);
				map_entry.MD5 = BlamLib.Cryptography.MD5.GenerateFileMD5String(arguments.Map);
				map_entry.UncompressedSize = UncompressedSize;
				map_entry.CompressedSize = CompressedSize;
				map_entry.HostDirectory = Path.GetFileNameWithoutExtension(arguments.Map);

				map_entry.Parts = new List<MapDownloadList.MapPartClass>();

				// add all of the map parts to the map entry
				foreach (var file in file_list)
				{
					MapDownloadList.MapPartClass part = new MapDownloadList.MapPartClass();

					part.Name = Path.GetFileName(file.Location);
					part.MD5 = file.MD5;
					part.Index = file.Index;
					part.Size = file.Size;
					if (file.Encrypted)
					{
						part.Encrypted = true;
						part.UnencryptedMD5 = file.UnencryptedMD5;
					}

					map_entry.Parts.Add(part);
				}
			}

			// save the map entry to a map entry include xml
			MapDownloadList.MapIncludeClass map_include = new MapDownloadList.MapIncludeClass();

			map_include.MapDownload = map_entry;

			string xml_path = Path.Combine(arguments.DefinitionsFolder, String.Format("{0}.xml", map_filename));
			Util.SerializeObjectXML(map_include, xml_path);
		}
Example #15
0
        /// <summary>
        /// 导出
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnConfirm_Click(object sender, EventArgs e)
        {
            txtLoc.Text = txtLoc.Text.Trim();
            if (txtLoc.Text == "")
            {
                TXMessageBoxExtensions.Info("提示:请选择导出文件的存储路径!");
                txtLoc.Focus();
                return;
            }
            string destFilename = MyCommon.GetFileShortName(txtLoc.Text);
            string destFolder   = Path.GetDirectoryName(txtLoc.Text);

            if (!Directory.Exists(destFolder))
            {
                TXMessageBoxExtensions.Info("存储的路径不存在!");
                return;
            }
            /// <summary>
            /// 导出功能涉及的文件临时存放目录
            /// </summary>
            string tempFullName =
                Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "\\ERM\\OutDataTemp";

            try
            {
                btnCancel.Enabled   = false;
                btnConfirm.Enabled  = false;
                btnExplorer.Enabled = false;

                if (System.IO.Directory.Exists(tempFullName))
                {
                    MyCommon.DeleteFilesAndFolders(tempFullName);
                }
                Directory.CreateDirectory(tempFullName);
                // MyCommon.DeleteAndCreateEmptyDirectory(tempFullName, false);
                //MyCommon.DeleteAndCreateEmptyDirectory(tempFullName);

                MyCommon.DeleteAndCreateEmptyDirectory(tempFullName + "\\" + TheNode.Name + "\\T_GdList\\");
                MyCommon.DeleteAndCreateEmptyDirectory(tempFullName + "\\" + TheNode.Name + "\\T_FileList\\");
                MyCommon.DeleteAndCreateEmptyDirectory(tempFullName + "\\" + TheNode.Name + "\\T_CellAndEFile\\");
                MyCommon.DeleteAndCreateEmptyDirectory(tempFullName + "\\" + TheNode.Name + "\\T_CellAndEFile\\ODOC\\"); //原文
                MyCommon.DeleteAndCreateEmptyDirectory(tempFullName + "\\" + TheNode.Name + "\\T_CellAndEFile\\PDF\\");  //原文的PDF文件
                MyCommon.DeleteAndCreateEmptyDirectory(tempFullName + "\\" + TheNode.Name + "\\T_CellAndEFile\\MPDF\\"); //文件级电子文件,带章

                int sumCount = 0;
                GetNodesCount(TheNode, ref sumCount);
                GetChildToFileCount(TheNode, ref sumCount);
                progressBar1.Maximum = sumCount;

                ParentToFile(TheNode, tempFullName + "\\" + TheNode.Name);
                ChildToFile(TheNode, tempFullName + "\\" + TheNode.Name);

                lblTitle.Text      = @"正在压缩导出数据....";
                progressBar1.Value = progressBar1.Maximum / 2;
                Application.DoEvents();

                //Common.ZipFile zip = new Common.ZipFile(tempFullName + "\\", txtLoc.Text);
                //zip.StartZip();

                SevenZip.SevenZipCompressor.SetLibraryPath(Application.StartupPath + "\\7z.dll");
                SevenZip.SevenZipCompressor tmp = new SevenZip.SevenZipCompressor();
                tmp.ArchiveFormat = SevenZip.OutArchiveFormat.Zip;
                tmp.CompressDirectory(tempFullName + "\\", txtLoc.Text);

                System.Threading.Thread.Sleep(1000);

                MyCommon.DeleteAndCreateEmptyDirectory(tempFullName, false);//删除文件夹

                lblTitle.Text = @"导出完成!";
                Application.DoEvents();

                this.DialogResult   = DialogResult.OK;
                btnCancel.Enabled   = true;
                btnConfirm.Enabled  = true;
                btnExplorer.Enabled = true;
            }
            catch (Exception ex)
            {
                TXMessageBoxExtensions.Info(ex.Message);
                this.DialogResult = DialogResult.Cancel;
                MyCommon.DeleteAndCreateEmptyDirectory(tempFullName, false);//删除文件夹
            }
        }
Example #16
0
 private void Form1_Load(object sender, EventArgs e)
 {
     SevenZip.SevenZipCompressor c = new SevenZip.SevenZipCompressor();
 }