【NCRE】回收考生答题文件--文件夹的重命名和删除

NCRE需求】

 

       要求对所有考生的答题文件进行回收,方便考生核查分数。

 

       由于一级考试做题的时候,都是在本地进行的,是对一些文件,文件夹以及浏览器进行的操作,所以如果有核查分数的这个需求,我们就必须要将“计算机一级考生文件夹”里的所有内容进行回收。


 

【技术点】

 

 一、文件夹的重命名以及文件夹删除功能

 

1为什么要重命名?

 

       考生登陆时下载的都是“计算机一级考生文件”这个文件夹,如果将答题记录全以“计算机一级考生文件”命名的话,不能给区分是哪个学生的答题文件,而且每个考生都可以考多次试,所以也不能以学号对文件夹命名,最后决定以学号+时间戳进行命名。

 

第一步,将时间戳转换格式

 

        我们常用的时间基本上都是2015-12-27,或者2015/12/27这种格式的,现在要将其转换为纯数字的。

 

两种转换方式:

 

1)日期格式转换


 string s =string.Format("{0:yyyyMMddHHmmssfff}", time);

2)正则表达式选取数字


string s = Regex.Replace(time,@"[^\d]*", "");


第二步,拼接新文件夹名

 

原路径为:"D:\计算机一级考生文件"


新路径为:"D:\"+ studentID + "-" + s

 

第三步,文件夹重命名

 

两种重命名方式:

 

 (1)此种方法还没有进行多次测试,是否可以百分百成功重命名。

if (Directory.Exists(@"D:\计算机一级考生文件"))
                {
                    DirectoryInfo folder = newDirectoryInfo(@"D:\计算机一级考生文件");
                   folder.MoveTo(@"D:\" + studentID + "-" + s);
                }
                else
                {
                    MessageBox.Show("重命名文件夹失败!");
                }

 

 (2)这种简单方便,但是经常出问题,会出现路径拒绝访问的问题。

Directory.Move(@"D:\计算机一级考生文件", @"D:\" +studentID + "-" + s);

 

2、为什么要删除文件和文件夹?

       

       一台电脑要进行考多次,不能每次考完一场重启一次电脑吧。所以,我们每次交卷上传Mongo成功后就要将本地的文件夹进行删除。

 

 1)删除文件


 File.Delete(@"D:\" + studentID +"-" + s + @".zip");


 2)删除文件夹方法

    

public static BooleanDeleteDirectory(string path)
        {
            Boolean flag = false;
            DirectoryInfo dir = newDirectoryInfo(path);
            if (dir.Exists)
            {
                DirectoryInfo[] childs =dir.GetDirectories();
                foreach (DirectoryInfo child inchilds)
                {
                    child.Delete(true);
                }
                dir.Delete(true);
                 flag = true;
            }
            return flag;
        }


                             未完待续~~下篇介绍文件夹的压缩

你可能感兴趣的:(【NCRE】回收考生答题文件--文件夹的重命名和删除)