public static class TxtHelper
{
/// <summary>
/// 在txt文件中加一条数据
/// </summary>
/// <param name="folderName">文件夹名称</param>
/// <param name="fileName">文件名称</param>
/// <param name="line">信息</param>
public static void WriteLine(string folderName, string fileName, string line)
{
string LogPath = folderName;
if (!Directory.Exists(LogPath))
{
Directory.CreateDirectory(LogPath);
}
string filePath = LogPath + fileName;
using (FileStream stream = File.Open(filePath, FileMode.Append, FileAccess.Write, FileShare.Write))
{
using (StreamWriter sw = new StreamWriter(stream))
{
sw.WriteLine(line);
}
}
}
/// <summary>
/// 在txt文件中加多条数据
/// </summary>
/// <param name="folderName">文件夹名称</param>
/// <param name="fileName">文件名称</param>
/// <param name="lines">多条信息</param>
public static void WriteLines(string folderName, string fileName, List<string> lines)
{
string LogPath = folderName;
if (!Directory.Exists(LogPath))
{
Directory.CreateDirectory(LogPath);
}
string filePath = LogPath + fileName;
using (FileStream stream = File.Open(filePath, FileMode.Append, FileAccess.Write, FileShare.Write))
{
using (StreamWriter sw = new StreamWriter(stream))
{
lines.ForEach(e =>
{
sw.WriteLine(e);
});
}
}
}
/// <summary>
/// 在txt文件中覆盖一条数据
/// </summary>
/// <param name="folderName">文件夹名称</param>
/// <param name="fileName">文件名称</param>
/// <param name="line">信息</param>
public static void ReWriteLine(string folderName, string fileName, string line)
{
string LogPath = folderName;
if (!Directory.Exists(LogPath))
{
Directory.CreateDirectory(LogPath);
}
string filePath = LogPath + fileName;
using (FileStream stream = File.Open(filePath, FileMode.Create, FileAccess.Write, FileShare.Write))
{
using (StreamWriter sw = new StreamWriter(stream))
{
sw.WriteLine(line);
}
}
}
/// <summary>
/// 在txt文件中覆盖多条数据
/// </summary>
/// <param name="folderName">文件夹名称</param>
/// <param name="fileName">文件名称</param>
/// <param name="line">信息</param>
public static void ReWriteLines(string folderName, string fileName, List<string> lines)
{
string LogPath = folderName;
if (!Directory.Exists(LogPath))
{
Directory.CreateDirectory(LogPath);
}
string filePath = LogPath + fileName;
using (FileStream stream = File.Open(filePath, FileMode.Create, FileAccess.Write, FileShare.Write))
{
using (StreamWriter sw = new StreamWriter(stream))
{
lines.ForEach(e =>
{
sw.WriteLine(e);
});
}
}
}
/// <summary>
/// 在txt文件中取出所有数据
/// </summary>
/// <param name="folderName">文件夹名称</param>
/// <param name="fileName">文件名称</param>
public static List<string> GetAllLines(string folderName, string fileName)
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
string LogPath = folderName;
if (!Directory.Exists(LogPath))
{
Directory.CreateDirectory(LogPath);
}
string filePath = LogPath + fileName;
FileStream stream = null;
StreamReader reader = null;
List<string> baseList = new List<string>();
try
{
stream = new FileStream(filePath, FileMode.Open);
reader = new StreamReader(stream, Encoding.GetEncoding("utf-8"));
bool isNotNullLine = true;
while (isNotNullLine)
{
string line = reader.ReadLine();
if (string.IsNullOrEmpty(line))
{
isNotNullLine = false;
}
else
{
baseList.Add(line);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
if (stream != null)
{
stream.Close();
stream.Dispose();
}
if (reader != null)
{
reader.Close();
reader.Dispose();
}
}
if (baseList.Count == 0)
{
return null;
}
return baseList;
}
/// <summary>
/// 在txt文件中取出输入行之后的所有数据
/// </summary>
/// <param name="folderName">文件夹名称</param>
/// <param name="fileName">文件名称</param>
public static List<string> GetNextAllLines(string folderName, string fileName, string inputline)
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
string LogPath = folderName;
if (!Directory.Exists(LogPath))
{
Directory.CreateDirectory(LogPath);
}
string filePath = LogPath + fileName;
FileStream stream = null;
StreamReader reader = null;
List<string> baseList = new List<string>();
try
{
stream = new FileStream(filePath, FileMode.Open);
reader = new StreamReader(stream, Encoding.GetEncoding("utf-8"));
bool isNotNullLine = true;
while (isNotNullLine)
{
string line = reader.ReadLine();
if (string.IsNullOrEmpty(line))
{
isNotNullLine = false;
}
else
{
if (line == inputline)
{
break;
}
}
}
while (isNotNullLine)
{
string line = reader.ReadLine();
if (string.IsNullOrEmpty(line))
{
isNotNullLine = false;
}
else
{
baseList.Add(line);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
if (stream != null)
{
stream.Close();
stream.Dispose();
}
if (reader != null)
{
reader.Close();
reader.Dispose();
}
}
return baseList;
}
/// <summary>
/// 获取文件夹下所有后缀是fileType文件
/// </summary>
/// <param name="folderName">文件夹</param>
/// <param name="fileType">文件类型</param>
/// <returns></returns>
public static List<string> GetAllFiles(string folderName, string fileType)
{
var files = Directory.GetFiles(folderName, $"*.{fileType}");
List<string> historyList = new List<string>();
foreach (var file in files)
historyList.Add(Path.GetFileName(file));
return historyList;
}
}