|
- using CnasSynchronousCommon;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Xml;
- using System.Xml.Serialization;
-
- namespace CnasSynchronousCommon
- {
- public static class FileHelper
- {
- /// <summary>
- /// 获取本地文件
- /// </summary>
- /// <param name="strPath"></param>
- public static string GetLocalFile(string strLocalPath,string strFileName)
- {
- string strLocalXML = "";
- try
- {
- string strUrl = strLocalPath + strFileName;
- if (File.Exists(strUrl))
- {
- string temp = "";
- using (StreamReader sr = new StreamReader(strUrl, Encoding.UTF8))
- {
- while (!sr.EndOfStream)//读到结尾退出
- {
- temp += sr.ReadLine();
- }
- }
- strLocalXML = temp;
- }
- else
- {
- AppLog.Error($"没有找到{strFileName}相关数据");
- }
- }
- catch (Exception ex)
- {
- AppLog.Error($"读取文件{strFileName}时发生错误:{ex.Message}");
- }
- return strLocalXML;
- }
-
-
- /// <summary>
- /// 保存本地文件
- /// </summary>
- /// <param name="strPath"></param>
- public static bool SaveLocalFile(string strLocalPath,string strFileName, string strData)
- {
- bool bIfSuccess = true;
- try
- {
- if (!Directory.Exists(strLocalPath))
- {
- Directory.CreateDirectory(strLocalPath);
- }
- string strUrl = strLocalPath + strFileName;
- FileStream fs = new FileStream(strUrl, FileMode.Create, FileAccess.ReadWrite);
- StringBuilder sBld = new StringBuilder();
- sBld.Append(strData);
- //byte[] byteFile = Encoding.Default.GetBytes(sBld.ToString());
- byte[] byteFile = Encoding.GetEncoding("utf-8").GetBytes(sBld.ToString());
- //参数:要写入到文件的数据数组,从数组的第几个开始写,一共写多少个字节
- fs.Write(byteFile, 0, byteFile.Length);
- fs.Close();
- fs.Dispose();
- }
- catch (Exception ex)
- {
- bIfSuccess = false;
- AppLog.Error($"保存文件{strFileName}时发生错误:{ex.Message}");
- }
- return bIfSuccess;
- }
-
-
- /// <summary>
- /// 获取当前dll所在目录
- /// </summary>
- /// <returns></returns>
- public static string getBasePath()
- {
- //获取当前DLL 所在路径
- string dllpath = System.Reflection.Assembly.GetExecutingAssembly().CodeBase;
- if (dllpath != null && dllpath.Length > 0) dllpath = dllpath.Substring(8) + @"\";
- FileInfo tmpDllInfo = new FileInfo(dllpath);
- dllpath = tmpDllInfo.DirectoryName;
- dllpath = dllpath.Replace(tmpDllInfo.Directory.Name, "");
- return dllpath;
- }
- /// <summary>
- /// 将自定义对象序列化为XML字符串
- /// </summary>
- /// <param name="myObject">自定义对象实体</param>
- /// <returns>序列化后的XML字符串</returns>
- public static string SerializeToXml<T>(T myObject)
- {
- if (myObject != null)
- {
- XmlSerializer xs = new XmlSerializer(typeof(T));
-
- MemoryStream stream = new MemoryStream();
- XmlTextWriter writer = new XmlTextWriter(stream, Encoding.UTF8);
- writer.Formatting = Formatting.None;//缩进
- xs.Serialize(writer, myObject);
-
- stream.Position = 0;
- StringBuilder sb = new StringBuilder();
- using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
- {
- string line;
- while ((line = reader.ReadLine()) != null)
- {
- sb.Append(line);
- }
- reader.Close();
- }
- writer.Close();
- return sb.ToString();
- }
- return string.Empty;
- }
-
- /// <summary>
- /// 将XML字符串反序列化为对象
- /// </summary>
- /// <typeparam name="T">对象类型</typeparam>
- /// <param name="xml">XML字符</param>
- /// <returns></returns>
- public static T DeserializeToObject<T>(string xml)
- {
- T myObject;
- XmlSerializer serializer = new XmlSerializer(typeof(T));
- StringReader reader = new StringReader(xml);
- myObject = (T) serializer.Deserialize(reader);
- reader.Close();
- return myObject;
- }
- }
- }
|