好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

C#文件操作类分享

本文实例为大家分享了C#文件操作类的具体代码,供大家参考,具体内容如下

?

using System;

using System.Collections.Generic;

using System.Text;

using System.Data;

using System.Reflection;

using System.Collections;

using System.Data.Common;

 

namespace DotNet.Utilities

{

  //JSON转换类

  public class ConvertJson

  {

  #region 私有方法

  /// <summary>

  /// 过滤特殊字符

  /// </summary>

  private static string String2Json(String s)

  {

   StringBuilder sb = new StringBuilder();

   for ( int i = 0; i < s.Length; i++)

   {

   char c = s.ToCharArray()[i];

   switch (c)

   {

    case '\"' :

    sb.Append( "\\\"" ); break ;

    case '\\' :

    sb.Append( "\\\\" ); break ;

    case '/' :

    sb.Append( "\\/" ); break ;

    case '\b' :

    sb.Append( "\\b" ); break ;

    case '\f' :

    sb.Append( "\\f" ); break ;

    case '\n' :

    sb.Append( "\\n" ); break ;

    case '\r' :

    sb.Append( "\\r" ); break ;

    case '\t' :

    sb.Append( "\\t" ); break ;

    default :

    sb.Append(c); break ;

   }

   }

   return sb.ToString();

  }

 

  /// <summary>

  /// 格式化字符型、日期型、布尔型

  /// </summary>

  private static string StringFormat( string str, Type type)

  {

   if (type == typeof ( string ))

   {

   str = String2Json(str);

   str = "\"" + str + "\"" ;

   }

   else if (type == typeof (DateTime))

   {

   str = "\"" + str + "\"" ;

   }

   else if (type == typeof ( bool ))

   {

   str = str.ToLower();

   }

   else if (type != typeof ( string ) && string .IsNullOrEmpty(str))

   {

   str = "\"" + str + "\"" ;

   }

   return str;

  }

  #endregion

 

  #region List转换成Json

  /// <summary>

  /// List转换成Json

  /// </summary>

  public static string ListToJson<T>(IList<T> list)

  {

   object obj = list[0];

   return ListToJson<T>(list, obj.GetType().Name);

  }

 

  /// <summary>

  /// List转换成Json

  /// </summary>

  public static string ListToJson<T>(IList<T> list, string jsonName)

  {

   StringBuilder Json = new StringBuilder();

   if ( string .IsNullOrEmpty(jsonName)) jsonName = list[0].GetType().Name;

   Json.Append( "{\"" + jsonName + "\":[" );

   if (list.Count > 0)

   {

   for ( int i = 0; i < list.Count; i++)

   {

    T obj = Activator.CreateInstance<T>();

    PropertyInfo[] pi = obj.GetType().GetProperties();

    Json.Append( "{" );

    for ( int j = 0; j < pi.Length; j++)

    {

    Type type = pi[j].GetValue(list[i], null ).GetType();

    Json.Append( "\"" + pi[j].Name.ToString() + "\":" + StringFormat(pi[j].GetValue(list[i], null ).ToString(), type));

 

    if (j < pi.Length - 1)

    {

     Json.Append( "," );

    }

    }

    Json.Append( "}" );

    if (i < list.Count - 1)

    {

    Json.Append( "," );

    }

   }

   }

   Json.Append( "]}" );

   return Json.ToString();

  }

  #endregion

 

  #region 对象转换为Json

  /// <summary>

  /// 对象转换为Json

  /// </summary>

  /// <param name="jsonObject">对象</param>

  /// <returns>Json字符串</returns>

  public static string ToJson( object jsonObject)

  {

   string jsonString = "{" ;

   PropertyInfo[] propertyInfo = jsonObject.GetType().GetProperties();

   for ( int i = 0; i < propertyInfo.Length; i++)

   {

   object objectValue = propertyInfo[i].GetGetMethod().Invoke(jsonObject, null );

   string value = string .Empty;

   if (objectValue is DateTime || objectValue is Guid || objectValue is TimeSpan)

   {

    value = "'" + objectValue.ToString() + "'" ;

   }

   else if (objectValue is string )

   {

    value = "'" + ToJson(objectValue.ToString()) + "'" ;

   }

   else if (objectValue is IEnumerable)

   {

    value = ToJson((IEnumerable)objectValue);

   }

   else

   {

    value = ToJson(objectValue.ToString());

   }

   jsonString += "\"" + ToJson(propertyInfo[i].Name) + "\":" + value + "," ;

   }

   jsonString.Remove(jsonString.Length - 1, jsonString.Length);

   return jsonString + "}" ;

  }

  #endregion

 

  #region 对象集合转换Json

  /// <summary>

  /// 对象集合转换Json

  /// </summary>

  /// <param name="array">集合对象</param>

  /// <returns>Json字符串</returns>

  public static string ToJson(IEnumerable array)

  {

   string jsonString = "[" ;

   foreach ( object item in array)

   {

   jsonString += ToJson(item) + "," ;

   }

   jsonString.Remove(jsonString.Length - 1, jsonString.Length);

   return jsonString + "]" ;

  }

  #endregion

 

  #region 普通集合转换Json

  /// <summary>

  /// 普通集合转换Json

  /// </summary>

  /// <param name="array">集合对象</param>

  /// <returns>Json字符串</returns>

  public static string ToArrayString(IEnumerable array)

  {

   string jsonString = "[" ;

   foreach ( object item in array)

   {

   jsonString = ToJson(item.ToString()) + "," ;

   }

   jsonString.Remove(jsonString.Length - 1, jsonString.Length);

   return jsonString + "]" ;

  }

  #endregion

 

  #region DataSet转换为Json

  /// <summary>

  /// DataSet转换为Json

  /// </summary>

  /// <param name="dataSet">DataSet对象</param>

  /// <returns>Json字符串</returns>

  public static string ToJson(DataSet dataSet)

  {

   string jsonString = "{" ;

   foreach (DataTable table in dataSet.Tables)

   {

   jsonString += "\"" + table.TableName + "\":" + ToJson(table) + "," ;

   }

   jsonString = jsonString.TrimEnd( ',' );

   return jsonString + "}" ;

  }

  #endregion

 

  #region Datatable转换为Json

  /// <summary>

  /// Datatable转换为Json

  /// </summary>

  /// <param name="table">Datatable对象</param>

  /// <returns>Json字符串</returns>

  public static string ToJson(DataTable dt)

  {

   StringBuilder jsonString = new StringBuilder();

   jsonString.Append( "[" );

   DataRowCollection drc = dt.Rows;

   for ( int i = 0; i < drc.Count; i++)

   {

   jsonString.Append( "{" );

   for ( int j = 0; j < dt.Columns.Count; j++)

   {

    string strKey = dt.Columns[j].ColumnName;

    string strValue = drc[i][j].ToString();

    Type type = dt.Columns[j].DataType;

    jsonString.Append( "\"" + strKey + "\":" );

    strValue = StringFormat(strValue, type);

    if (j < dt.Columns.Count - 1)

    {

    jsonString.Append(strValue + "," );

    }

    else

    {

    jsonString.Append(strValue);

    }

   }

   jsonString.Append( "}," );

   }

   jsonString.Remove(jsonString.Length - 1, 1);

   jsonString.Append( "]" );

   return jsonString.ToString();

  }

 

  /// <summary>

  /// DataTable转换为Json

  /// </summary>

  public static string ToJson(DataTable dt, string jsonName)

  {

   StringBuilder Json = new StringBuilder();

   if ( string .IsNullOrEmpty(jsonName)) jsonName = dt.TableName;

   Json.Append( "{\"" + jsonName + "\":[" );

   if (dt.Rows.Count > 0)

   {

   for ( int i = 0; i < dt.Rows.Count; i++)

   {

    Json.Append( "{" );

    for ( int j = 0; j < dt.Columns.Count; j++)

    {

    Type type = dt.Rows[i][j].GetType();

    Json.Append( "\"" + dt.Columns[j].ColumnName.ToString() + "\":" + StringFormat(dt.Rows[i][j].ToString(), type));

    if (j < dt.Columns.Count - 1)

    {

     Json.Append( "," );

    }

    }

    Json.Append( "}" );

    if (i < dt.Rows.Count - 1)

    {

    Json.Append( "," );

    }

   }

   }

   Json.Append( "]}" );

   return Json.ToString();

  }

  #endregion

 

  #region DataReader转换为Json

  /// <summary>

  /// DataReader转换为Json

  /// </summary>

  /// <param name="dataReader">DataReader对象</param>

  /// <returns>Json字符串</returns>

  public static string ToJson(DbDataReader dataReader)

  {

   StringBuilder jsonString = new StringBuilder();

   jsonString.Append( "[" );

   while (dataReader.Read())

   {

   jsonString.Append( "{" );

   for ( int i = 0; i < dataReader.FieldCount; i++)

   {

    Type type = dataReader.GetFieldType(i);

    string strKey = dataReader.GetName(i);

    string strValue = dataReader[i].ToString();

    jsonString.Append( "\"" + strKey + "\":" );

    strValue = StringFormat(strValue, type);

    if (i < dataReader.FieldCount - 1)

    {

    jsonString.Append(strValue + "," );

    }

    else

    {

    jsonString.Append(strValue);

    }

   }

   jsonString.Append( "}," );

   }

   dataReader.Close();

   jsonString.Remove(jsonString.Length - 1, 1);

   jsonString.Append( "]" );

   return jsonString.ToString();

  }

  #endregion

  }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://HdhCmsTestcnblogs测试数据/Liyuting/archive/2017/06/27/7085013.html

dy("nrwz");

查看更多关于C#文件操作类分享的详细内容...

  阅读:46次