using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace MainForm
{
class CsvFunction
{
///
/// 新建CSV文件,
///
/// 文件路径+文件名(包含扩展名)
public static void NewCsvFile(string csvFile, string title = null)
{
string path = csvFile.Substring(0, csvFile.LastIndexOf("\\"));
if (!Directory.Exists(path)) Directory.CreateDirectory(path); //判断路径是否存在,不存在则创建
if (!File.Exists(csvFile)) //判断文件是否存在,不存在则创建
{
using (FileStream fileStream = new FileStream(csvFile, FileMode.Create, FileAccess.Write))
{
if (title != null)
{
StreamWriter streamWriter = new StreamWriter(fileStream,Encoding.ASCII);
//sw.BaseStream的Position或Seek()可移动文件流指针到的任意位置。
streamWriter.BaseStream.Seek(0, SeekOrigin.End); //在CSV末尾写入
streamWriter.Write(title); //写入CSV文件内容
streamWriter.Flush();
streamWriter.Close();
}
fileStream.Close();
}
}
}
///
/// 写入CSV文件
///
/// 文件路径+文件名(包含扩展名)
/// 写入内容
public static bool WriteCsvFile(string csvFile, string txt)
{
if (!File.Exists(csvFile)) NewCsvFile(csvFile); //判断文件是否存在,不存在则新建
try
{
using (FileStream fileStream = new FileStream(csvFile, FileMode.Open, FileAccess.Write)) //写入文件
{
StreamWriter streamWriter = new StreamWriter(fileStream,Encoding.Default);
//sw.BaseStream的Position或Seek()可移动文件流指针到的任意位置。
streamWriter.BaseStream.Seek(0, SeekOrigin.End); //在CSV末尾写入
streamWriter.Write(txt); //写入CSV文件内容
streamWriter.Flush();
streamWriter.Close();
fileStream.Close();
}
return true;
}
catch { return false; }
}
///
/// 读取CSV文件内容
///
/// 文件路径+文件名(包含扩展名)
/// 返回csv文件内容
public static string ReadCsvFile(string csvFile)
{
if (!File.Exists(csvFile)) return ""; //判断文件是否存在
string Return = "";
using (FileStream fileStream = new FileStream(csvFile, FileMode.Open, FileAccess.Read))
{
StreamReader streamReader = new StreamReader(fileStream, Encoding.UTF8);
Return = streamReader.ReadToEnd().ToString();
streamReader.Close();
fileStream.Close();
}
return Return;
}
public static int GetCsvRowNumber(string csvFile)
{
if (!File.Exists(csvFile)) return 0; //判断文件是否存在
string[] allLines = File.ReadAllLines(csvFile);
return allLines.Length;
}
public static string[] GetCsvAllLine(string csvFile)
{
if (!File.Exists(csvFile)) return null; //判断文件是否存在
string[] allLines = File.ReadAllLines(csvFile,Encoding.Default);
return allLines;
}
///
/// 读取最后一行内容
///
/// 文件路径+文件名(包含扩展名)
///
public static string ReadLastLine(string csvFile)
{
if (!File.Exists(csvFile)) return ""; //判断文件是否存在
string[] allLines = File.ReadAllLines(csvFile);
if (allLines.Length > 0)
return allLines[allLines.Length - 1];
else return "";
}
///
/// 覆盖最后一行内容
///
/// 文件路径+文件名(包含扩展名)
///
public static void CoverLastLine(string csvFile, string txt)
{
if (File.Exists(csvFile)) //判断文件是否存在
{
string[] allLines = File.ReadAllLines(csvFile);
if (allLines.Length > 0)
{
allLines[allLines.Length - 1] = txt;
File.WriteAllLines(csvFile, allLines);
}
}
}
///
/// 移除最后一行内容
///
/// 文件路径+文件名(包含扩展名)
public static void RemoveLastLine(string csvFile)
{
if (File.Exists(csvFile)) //判断文件是否存在
{
string[] allLines = File.ReadAllLines(csvFile);
if (allLines.Length > 0)
{
Array.Resize(ref allLines, allLines.Length - 1);
File.WriteAllLines(csvFile, allLines);
}
}
}
}
}