public static MyXmlDocument CreateInstance() { if (_instance == null) { lock (lockHelper) { if (_instance == null) { _instance = new MyXmlDocument(); } } } return(_instance); }
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()); } } }