Example #1
0
 public static MyXmlDocument CreateInstance()
 {
     if (_instance == null)
     {
         lock (lockHelper)
         {
             if (_instance == null)
             {
                 _instance = new MyXmlDocument();
             }
         }
     }
     return(_instance);
 }
Example #2
0
        public void ReadFiles()
        {
            DirectoryInfo di      = new DirectoryInfo(HGPath);
            FileInfo      newFile = null;
            MyXmlDocument doc     = MyXmlDocument.CreateInstance();

            //try
            //{
            //    while (true)
            //    {
            //        di = new DirectoryInfo(HGPath);
            //        bool rs = di.Exists;
            //        if (rs)
            //        {
            //            break;
            //        }
            //        Thread.Sleep(60000);
            //    }
            //}
            //catch (Exception ex)
            //{
            //    Loger.LogMessage(ex.ToString());
            //}
            // FileHelper.WriteLog("开始获取文件");
            S();
            FileInfo[] files = di.GetFiles();

            //  int icount = Math.Min(50, files.Length);
            int icount = files.Length;

            E("", "从海关服务器读取文件");
            FileHelper.WriteLog("从海关服务上获取到" + icount + "个文件");
            DateTime dtS = DateTime.Now;
            string   dueTime, dueTxt;
            string   newFilePath = "";

            for (int i = 0; i < icount; i++)
            {
                try
                {
                    dtS = DateTime.Now;
                    S();
                    newFilePath = MoveFileToPath(files[i], ReadPath);
                    CopyFileToPath(newFilePath, OtherPath);

                    E(files[i].Name, "移动到Read文件夹");
                    S();
                    newFile = new FileInfo(newFilePath);
                    //  XmlDocument doc = new XmlDocument();
                    doc.Load(newFile.FullName);
                    XmlNodeList            node  = doc.SelectNodes("DATA/ENTRY_HEAD");
                    IList <EHS_ENTRY_HEAD> infos = new List <EHS_ENTRY_HEAD>();

                    foreach (XmlNode item in node)
                    {
                        EHS_ENTRY_HEAD info = XmlHelper.Deserialize <EHS_ENTRY_HEAD>(item.OuterXml);
                        infos.Add(info);
                    }
                    E(newFile.Name, "读取文件");
                    S();
                    int rs = 0;
                    foreach (var info in infos)
                    {
                        rs += SaveInfo(info);
                    }
                    E(newFile.Name, "存储");
                    S();
                    if (rs > 0)
                    {
                        MoveFileToPath(newFile, true);
                    }
                    else
                    {
                        MoveFileToPath(newFile, false);
                    }
                    E(newFile.Name, "移动到Save文件夹");


                    dueTime = DateTime.Now.Subtract(dtS).TotalSeconds.ToString("0.00");
                    dueTxt  = (newFile == null ? "未知文件" : newFile.Name) + "处理完成,用时:" + dueTime + "秒";
                    FileHelper.WriteLog(dueTxt);
                    Console.WriteLine(dueTxt);
                }
                catch (Exception ex)
                {
                    MoveFileToPath(newFile, false);
                    Console.WriteLine((newFile == null ? "未知文件" : newFile.Name) + "处理失败,原因:" + ex.Message);
                    Loger.LogMessage(ex.ToString());
                }
            }
        }