c#第十四课

128 阅读2分钟

创建文件

创建一个文件夹

 Directory.CreateDirectory("./图书管理系统");

创建文件

 File.Create("./图书管理系统/暴走大事件.png");//改变文件后缀名,可创建不同类型的文件
 File.Delete("./图书管理系统");//删除指定文件

读取文件信息

 byte[] sByte = File.ReadAllBytes("./图书管理系统/暴走大事件.txt");
 File.WriteAllBytes("./图书管理系统/1.txt", sByte);//将sByte中的信息写入到1.txt里

创建一个文件目录对象

DirectoryInfo dicInfo = new DirectoryInfo("./图书管理系统");
dicInfo.Delete();//删除空目录

获取当前目下的文件结构

//第1种
string[] files = Directory.GetFiles("./");//获取所有文件路径信息
string pattern = @".+\.txt$";
foreach (string i in files)
{
    if (Regex.IsMatch(i,pattern))
    {
        File.Delete(i);删除文件
    }
}

//第2种
  string[] dicectories = Directory.GetDirectories("./");
  foreach (string i in dicectories)
  {
      Console.WriteLine(i);
  }

练习:使用学到的文件操作,创建三个文件文件名分别是数学.txt,语文.txt,英语.txt,里面分别存放着50个学生的数学,语文,英语成绩,每一行放着名字和对应的分数,名字是小明1,小明2这样的规律显示,分数随机,每一行显示的完整内容是 科目+名字+分数,接下来用我们前面讲到的正则表达式,找出所有txt文件中的小明1的成绩逐行显示到1.txt文件中

StreamWriter fsMath = new StreamWriter("./数学.txt");//数学
StreamWriter fsEnglish = new StreamWriter("./英语.txt");//英语
StreamWriter fsChine = new StreamWriter("./语文.txt");//语文
//数学
for (int i = 1; i <= 50; i++)
{
    Random ran = new Random();
    int score1 = ran.Next(0, 100);
    fsMath.WriteLine("数学 小明{0} {1}", i, score1);
}
fsMath.Close();
//英语
for (int i = 1; i <= 50; i++)
{
    Random ran = new Random();
    int score2 = ran.Next(0, 100);
    fsEnglish.WriteLine("英语 小明{0} {1}", i, score2);
}
fsEnglish.Close();
//语文
for (int i = 1; i <= 50; i++)
{
    Random ran = new Random();
    int score3 = ran.Next(0, 100);
    fsChine.WriteLine("语文 小明{0} {1}", i, score3);
}
fsChine.Close();
StreamReader stra1 = new StreamReader("./数学.txt");
StreamReader str2 = new StreamReader("./英语.txt");
StreamReader stra3 = new StreamReader("./语文.txt");
string str1 = stra1.ReadToEnd();
string strs2 = str2.ReadToEnd();
string str3 = stra3.ReadToEnd();
string[] s1 = str1.Split("\n");
string[] s2 = strs2.Split("\n");
string[] s3 = str3.Split("\n");
string ss = @"小明1";
StreamWriter st = new StreamWriter("./1.txt",true);
foreach (string i in s1)
{
    if (Regex.IsMatch(i,ss))
    {
        st.WriteLine(i);
        break;
    }
}
foreach (string i in s2)
{
    if (Regex.IsMatch(i, ss))
    {
        st.WriteLine(i);
        break;
    }
}
foreach (string i in s3)
{
    if (Regex.IsMatch(i, ss))
    {
        st.WriteLine(i);
        break;
    }
}
st.Close();