Exemplo n.º 1
0
        private bool OnMakeNewLog()
        {
            string sTime = DateTime.Now.ToString("yyyyMMdd");
            string sDir  = OM.LogInfo.sLogPath + @"\" + sTime + @"\";

            string[] sFile = new string[m_iMaxArray];

            if (!CIniFile.MakeFilePathFolder(sDir))
            {
                return(false);
            }

            sFile[0] = sDir + sTime + ".log";
            for (int i = 1; i < m_iMaxArray; i++)
            {
                sFile[i] = sDir + sTime + "_" + OM.GetTag(i) + ".log";
            }
            //if (!File.Exists(sFile)) File.Create(sFile);

            for (int i = 0; i < m_iMaxArray; i++)
            {
                if (sw[i] != null)
                {
                    sw[i].Close();
                }
                if (fs[i] != null)
                {
                    fs[i].Close();
                }
            }

            fs = new FileStream[m_iMaxArray];
            sw = new StreamWriter[m_iMaxArray];

            for (int i = 0; i < m_iMaxArray; i++)
            {
                if (i < OM.LogInfo.iTagCnt + 1)
                {
                    fs[i] = new FileStream(sFile[i], FileMode.Append, FileAccess.Write);
                    sw[i] = new StreamWriter(fs[i]);
                }
                else
                {
                    fs[i] = null;
                    sw[i] = null;
                }
            }

            //BackUp
            //string sbuName = "BackUp";//Path.GetFileName(OM.LogInfo.sLogBuPath);

            string sZip = DateTime.Now.ToString("yyyyMMdd") + "_BackUp.zip";

            double d1, d2, d3;

            d1 = CTimer.GetTime();
            CreateSample(sDir + sZip, "", OM.LogInfo.sLogBuPath);
            d2 = CTimer.GetTime();
            d3 = d2 - d1;
            Debug.WriteLine(d3);

            //기존에 있던것들 지우기. 디렉토리 삭제
            DirectoryInfo di = new DirectoryInfo(OM.LogInfo.sLogPath);

            if (!di.Exists)
            {
                di.Create();
            }

            foreach (DirectoryInfo dir in di.GetDirectories())
            {
                if (dir.CreationTime <= DateTime.Now.AddMonths(-OM.LogInfo.iSaveMaxMonths))
                {
                    try
                    {
                        dir.Delete(true);
                    }
                    catch (Exception e)
                    {
                        //Debug.WriteLine(e.Message);
                    }
                }
            }
            //foreach (FileInfo file in di.GetFiles()) //파일 삭제
            //{
            //    file.Delete();
            //}

            return(true);
        }