C#读取CSV,Excel,Txt文件,删除文件,拷贝文件


    #region 读取csv文件

    /// <summary>

    /// 读取CVS文件

    /// </summary>

    /// <param name="path">文件路径</param>

    /// <param name="name">文件名称</param>

    /// <returns>DataTable</returns>

    public static DataTable ReadCVS(string filepath, string filename) 

   {

        //string cvsDir = filepath;//要读取的CVS路径

        DataTable dt = new DataTable();

        if (filename.Trim().ToUpper().EndsWith("CSV"))//判断所要读取的扩展名

        {

            string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="

                + filepath + ";Extended Properties='text;HDR=NO;FMT=Delimited'";//有列的读取

            string commandText = "select * from [" + filename + "]";//SQL语句
            OleDbConnection olconn = new OleDbConnection(connStr);

            olconn.Open();

            OleDbDataAdapter odp = new OleDbDataAdapter(commandText, olconn);

            odp.Fill(dt);

            olconn.Close();

            odp.Dispose();

            olconn.Dispose();

        }

        return dt;

    }

    #endregion

 #region 读取Excel文件    

/// <summary>    

/// 读取Excel文件   

/// </summary>    

/// <param name="filepath">文件路径</param>    

/// <param name="filename">文件名称</param>    

/// <returns>DataTable</returns>    

public static DataTable ReadExcel(string filepath, string filename)

{

        System.Data.DataSet itemDS = new DataSet();

        if (filename.Trim().ToUpper().EndsWith("XLS") || filename.Trim().ToUpper().EndsWith("XLSX"))

        {

            string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath + filename + ";Extended Properties=\"Excel 12.0;HdR=NO;\"";

            System.Data.OleDb.OleDbConnection conn = null; 

           System.Data.OleDb.OleDbCommand oledbCommd = null;

            try

            { 

               conn = new System.Data.OleDb.OleDbConnection();

                conn.ConnectionString = connStr;

                conn.Open();

                DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

                //判断连接Excel sheet名

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

                {

                    DataRow dr = dt.Rows[i];

                    string sqlText = "select * from [" + dr["TABLE_NAME"] + "]";
                    oledbCommd = new System.Data.OleDb.OleDbCommand(sqlText, conn);

                    oledbCommd.CommandTimeout = 100000;

                    //执行

                    System.Data.OleDb.OleDbDataAdapter oledbDA = new System.Data.OleDb.OleDbDataAdapter(oledbCommd);
                    oledbDA.Fill(itemDS);

                }

            }

            catch

            {            }

            finally

            {

                //释放

                oledbCommd.Dispose();

                conn.Close();

            }

            //创建连接
        } 

       return itemDS.Tables[0];

 } 

   #endregion

#region 读取txt文件
/// <summary>
/// 读取Txt文本文件
/// </summary>
/// <param name="filepath">文件路径</param>
/// <param name="filename">文件名称</param>
/// <returns>文本信息</returns>
public static string ReadTxt(string filepath, string filename)
{
  StringBuilder sb = new StringBuilder("");
  //StreamReader sr = new StreamReader(filepath + filename); ;
  StreamReader sr = new StreamReader(filepath + filename, Encoding.GetEncoding("GB2312"));
  string line;
  while ((line = sr.ReadLine()) != null)
  {
      sb.AppendLine(line);
  }
  sr.Close();
  sr.Dispose();
  return sb.ToString();
}
#endregion

#endregion

#region 文件删除
/// <summary>
/// 删除文件操作
/// </summary>
/// <param name="filePath">文件路径</param>
/// <param name="fileName">文件名称</param>
public static void DeleteFile(string filePath, string fileName)
{
  string destinationFile = filePath + fileName;
  //如果文件存在,删除文件
  if (File.Exists(destinationFile))
  {
    FileInfo fi = new FileInfo(destinationFile);
    if (fi.Attributes.ToString().IndexOf("ReadOnly") != -1)
      fi.Attributes = FileAttributes.Normal;

    File.Delete(destinationFile);
  }
}
#endregion

/// <summary>
/// 拷贝文件
/// </summary>
/// <param name="fromFilePath">文件的路径</param>
/// <param name="toFilePath">文件要拷贝到的路径</param>
private bool CopyFile(string fromFilePath, string toFilePath)
{
  try
  {
    if (File.Exists(fromFilePath))
    {
      if (File.Exists(toFilePath))
      {
        File.Delete(toFilePath);
      }
      File.Move(fromFilePath, toFilePath);
      return true;
    }
  return false;
  }
  catch 
  {
    return false;
  }
}

原文地址:https://www.cnblogs.com/zhuzhiyuan/p/2024495.html