/// <summary> /// 로그를 파일에 씁니다. /// </summary> /// <param name="_path">파일경로를 셋팅합니다.(경로가 없을시 기본경로 셋팅)</param> /// <param name="_filename">파일명을 셋팅합니다.</param> /// <param name="_msg">적을 메세지</param> public static void writeLog(string _path, string _filename, string _msg) { string logpath = string.Empty; if (string.IsNullOrEmpty(_filename)) { return; } if (string.IsNullOrEmpty(_path)) { logpath = LogStr; } else { logpath = _path; } // 실제 로그 저장위치 string writepath = logpath + @"\" + _filename; // 실제경로와 파일이 생성되었는지 체크합니다. FileCls.makeFd(logpath); //FileCls.makeFile(logpath, _filename); // 로그를 저장합니다. using (StreamWriter sw = new StreamWriter(writepath, true)) { string _fullmsg = DateTime.Now + " | " + _msg; sw.WriteLine(_fullmsg); sw.Close(); } }
/// <summary> /// XML경로에 있는 XML파일을 읽어 DataTable형태로 반환합니다. /// </summary> /// <param name="xmlpath">XML위치경로</param> /// <returns></returns> public static DataTable fnXMLFileToDt(string xmlpath) { DataTable _tmpDt = new DataTable(); // 문서를 읽는다. if (FileCls.chkFile(xmlpath)) { // XML을 읽는다. DataSet ds = new DataSet(); ds.ReadXml(xmlpath); foreach (DataTable sdt in ds.Tables) { if (_tmpDt.Rows.Count > 0) { _tmpDt.Merge(sdt); } else { _tmpDt = sdt; } } } return(_tmpDt); }
/// <summary> /// Json String을 전달받아 XML파일로 저장합니다. /// </summary> /// <param name="_jsonstr">Json String</param> /// <param name="_rootName">Root명</param> /// <param name="_savepath">저장경로</param> /// <param name="_savefile">저장파일명</param> public static void fnJsonToXMLToFile(string _jsonstr, string _rootName, string _savepath, string _savefile) { // 저장/불러오기 경로 지정 string savepath = _savepath + _savefile; // Json을 DataTable형태로 변환 DataTable jsonDt = JsonConvert.DeserializeObject <DataTable>(_jsonstr); try { // 문서를 읽는다. if (FileCls.chkFile(savepath)) { // 기존파일 추가처리 fnUpdateXMLFile(jsonDt, savepath, savepath); } else { // 신규이므로 fnMakeXMLFile(jsonDt, _rootName, savepath, _savefile); } } catch (Exception e) { // 문서가 위치에 없다. LogCls.writeLog("", "MineError.log", "fnJsonToXMLToFile Error" + e.Message); } }
/// <summary> /// DataTable을 전달받아 XML 형태로 파일로 저장합니다. /// </summary> /// <param name="_oneDt">데이터테이블</param> /// <param name="_rootName">Root명</param> /// <param name="_savepath">저장경로</param> /// <param name="_savefile">저장파일명</param> public static void fnDtToXMLToFile(DataTable _oneDt, string _rootName, string _savepath, string _savefile) { // 저장/불러오기 경로 지정 string savepath = _savepath + _savefile; try { // 문서를 읽는다. if (FileCls.chkFile(savepath)) { // 수정처리 fnUpdateXMLFile(_oneDt, savepath, savepath); } else { // 신규이므로 fnMakeXMLFile(_oneDt, _rootName, _savepath, _savefile); } } catch (Exception e) { // 문서가 위치에 없다. LogCls.writeLog("", "MineError.log", "fnDtToXMLToFile Error" + e.Message); } }
public static void fnDataTableToCsv(DataTable _sourceDt) { // csv경로 셋팅 FileCls.makeFd(@"C:\CUBESTOCK"); // 파일명 셋팅 string csvfilepath = @"C:\CUBESTOCK\CUBE_" + StringCls.getToDate("") + ".csv"; // 파일이 있으면 덮어씌운다. using (StreamWriter sw = new StreamWriter(csvfilepath, true, Encoding.UTF8)) { // header 영역 for (int i = 0; i < _sourceDt.Columns.Count; i++) { sw.Write(_sourceDt.Columns[i]); if (i < _sourceDt.Columns.Count - 1) { sw.Write(","); } } // 개행 sw.Write(sw.NewLine); foreach (DataRow dr in _sourceDt.Rows) { for (int i = 0; i < _sourceDt.Columns.Count; i++) { if (!Convert.IsDBNull(dr[i])) { string valstr = dr[i].ToString(); if (valstr.Contains(",")) { valstr = String.Format("\"{0}\"", valstr); sw.Write(valstr); } else { sw.Write(dr[i].ToString()); } } if (i < _sourceDt.Columns.Count - 1) { sw.Write(","); } } sw.Write(sw.NewLine); } sw.Close(); } }
/// <summary> /// 신규 XML파일을 생성하여 저장한다. /// </summary> /// <param name="_oneDt">데이터</param> /// <param name="_rootName">루트명</param> /// <param name="_savePath">저장경로</param> public static void fnMakeXMLFile(DataTable _oneDt, string _rootName, string _savePath, string _saveFile) { // 해당경로가 있는지 체크하고 없으면 생성한다. FileCls.makeFd(_savePath); XmlDocument xd = new XmlDocument(); // Version, Encoding정보 셋팅 XmlDeclaration xmldec; xmldec = xd.CreateXmlDeclaration("1.0", "utf-8", null); // Root 엘리먼트 생성 XmlElement root = xd.DocumentElement; xd.InsertBefore(xmldec, root); // 1st Node XmlElement xe = xd.CreateElement(_rootName); foreach (DataRow dr in _oneDt.Rows) { // 2nd Node (Row단위 생성) if (string.IsNullOrEmpty(_oneDt.TableName)) { _oneDt.TableName = "COMMON"; } XmlElement xe_t = xd.CreateElement(_oneDt.TableName); foreach (DataColumn dc in _oneDt.Columns) { // 3rd Node (Column단위 생성) XmlElement xe3 = xd.CreateElement(dc.ColumnName); xe3.InnerText = dr[dc].ToString(); xe_t.AppendChild(xe3); } xe.AppendChild(xe_t); } xd.AppendChild(xe); xd.Save(_savePath + _saveFile); }