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); } } } } }