【NCRE】回收考生答题文件--文件夹的重命名和删除
2015-12-27 20:09
183 查看
【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; }
未完待续~~下篇介绍文件夹的压缩
相关文章推荐
- mycncart 之支付宝即时到帐支付方式
- FZOJ--2214--Knapsack problem(背包)
- 系统零件
- 拍照,选择照片并且剪裁
- 百度员工离职总结:资质平庸的人该怎么办?
- MapReduce整体架构分析
- Javascript中this关键字详解
- startActivityForResult无法调用singleTask的Activity返回的数据
- SpringMVC Controller接收前台ajax的GET或POST请求返回各种参数
- Javascript中this关键字详解
- 10个有关快门的必学知识
- Ubuntu 14.04.2 移植FFmpeg 2.8.3 到Android平台
- EL表达式复习
- 学IT-老男孩
- 辐射定标、辐射校正、大气校正、正射校正等相关概念
- mysql单表大小
- jQuery自动完成插件autocompleter 使用注意事项
- 更新cydia“sub-process/usr/libexec/cydia/cydo returned anerror code(2)”是怎么回事?
- 安卓开发--HttpDemo02
- BZOJ 2761 不重复的数字 哈希 or set or 二叉搜索树