在学校升级的时候,相关班级的文件夹也要升级,譬如文件夹“一年级”要改名为“二年级”。
但是,我用C#编程,方法大致如下:
DirectoryInfo folders = new DirectoryInfo(@"d:\a");
foreach (DirectoryInfo s in folders.GetDirectories())
{
string t=s.ToString();
if (t.IndexOf("小学六年级") == 0)
{
Directory.CreateDirectory(@"d:\b\" + DateTime.Now.ToString("yyyy年MM月dd HH时mm分ss秒").Substring(0,16) + "");
s.MoveTo(@"d:\b\" + DateTime.Now.ToString("yyyy年MM月dd HH时mm分ss秒").Substring(0, 16) + @"\" + t + ""); //备份毕业班的信息
}
else {
if (t.IndexOf("小学五年级") == 0)
{
t = t.Replace("小学五年级", "小学六年级");
s.MoveTo(@"d:\a\" + t + "");
}
if (t.IndexOf("小学四年级") == 0)
{
t = t.Replace("小学四年级", "小学五年级");
s.MoveTo(@"d:\a\" + t + "");
}
if (t.IndexOf("小学三年级") == 0)
{
t = t.Replace("小学三年级", "小学四年级");
s.MoveTo(@"d:\a\" + t + "");
}
if (t.IndexOf("小学二年级") == 0)
{
t = t.Replace("小学二年级", "小学三年级");
s.MoveTo(@"d:\a\" + t + "");
}
if (t.IndexOf("小学一年级") == 0)
{
t = t.Replace("小学一年级", "小学二年级");
s.MoveTo(@"d:\a\" + t + "");
}
}
但是在遍历的时候,不一定按循序排列,所以修改文件夹的时候,会出现重名,报错。遇上这个问题,应该如何解决?或者是否存在方法,先将文件夹名称排序,再执行上述操作?
加上GUID试试看可以具体一点吗?GUID和文件夹绑定?
高年级的已经升级或者毕业,先处理高年级的,在处理低年级的,就无此问题。。
如果先处理低年级的,在处理高年级的,肯定是重名了。
回复<aclass='referer'target='_blank'>@t_kong:按你这样的话,你应该全部重命名,都加上一个后缀。再来修改。在把有后缀的去掉即可。回复<aclass='referer'target='_blank'>@t_kong:列表文件夹读取,而是在程序中去规定读取顺序就可以解决了嗯嗯,问题就是这样啊,如何避免重复?因为读取文件夹名称的时候不能按顺序读啊.....所以更新不能由高年级到低年级这样处理。就是如何解决这个问题啊?版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。