我使用的是dev 中的memoEdit控件(和textbox类似)
下面看代码
private void GetFileText()
{
//获取文件相对路径
string path = System.Windows.Forms.Application.StartupPath;
path= path.Substring(0,path.Length-10);
//获取文件绝对路径
string folder = Path.Combine(path, "AppData\\Version");
//获取指定目录下所有文件
DirectoryInfo theFile = new DirectoryInfo(folder);
string content = "\r\n";
//判断是否为空
if (theFile.Exists)
{
//建立数组接收所有文件
FileInfo[] arrDir = theFile.GetFiles();
//对文件照版本号进行排序
SortAsFileName(ref arrDir);
//遍历排序后的文件
foreach (FileInfo item in arrDir)
{
string str=null;
//建立阅读流逐行读取文本内容
using (StreamReader sr = new StreamReader($@"{item.FullName}", Encoding.Default))
{
string txt = null;
int i = 1;
//txt = txt + sr.ReadLine() + "\r\n";
while ((txt=sr.ReadLine())!=null)
{
//如果此行为空或者为为换行则跳出此次循环
if (string.IsNullOrWhiteSpace(txt))
{
continue;
}
else
{
if (i == 1)
{
//第一行数据格式
str += txt + "\r\n\r\n";
}
else if (i==2)
{
//第二行数据格式
str = str + "\t" + txt + "\r\n\r\n";
}
else
{
//第二行以后的数据格式
str = str + "\t\t" + txt + "\r\n\r\n";
}
i++;
}
}
}
content = content + str + "\r\n\r\n";
}
}
//给控件赋值
memoEdit1.Text = content;
memoEdit1.ReadOnly = true;
memoEdit1.TabStop = false;
}
下面是排序方法由于是版本说明所以我先将文件名称转化为数字再根据大小倒序排列
/// <summary>
/// 按照版本号倒序排序
/// </summary>
/// <param name="arrFi"></param>
private void SortAsFileName(ref FileInfo[] arrFi)
{
Array.Sort(arrFi, delegate (FileInfo x, FileInfo y) { return (int.Parse)(y.Name.Replace(".","").Replace("V","").Replace("txt","")).CompareTo((int.Parse)(x.Name.Replace(".","").Replace("V","").Replace("txt",""))); });
//Array.Sort(arrFi, delegate (FileInfo x, FileInfo y) { return y.Name.CompareTo(x.Name); });
}
效果图