using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.IO;namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("start....");
string path=Path.GetFullPath("./");
DirectoryInfo dirinfo=new DirectoryInfo(path);
reg r = reg.getReg();
foreach (FileSystemInfo name in dirinfo.GetFileSystemInfos())
{
r.regName(name.Name);
}
DirectoryInfo summyinfo = new DirectoryInfo(Path.GetFullPath("summary/"));
foreach (FileSystemInfo p in summyinfo.GetFileSystemInfos())
{
r.CopyEFile(Path.GetFullPath("summary/"+p.Name));
}
Console.WriteLine("Done!!!!");
Console.WriteLine("Please tap random key to exit!!!");
Console.ReadKey();
}
} class reg
{
//private List<string> directory;
private static reg r;
private string patten = @"(\d*?)$";
private string patten2 = @"^([^.]*)\."; public static reg getReg()
{
if (r == null)
{
r = new reg();
}
return r;
} //主函数
public void regName(string name)
{
if (name == "EPCMSTTP.txt")
{
return;
}
this.checkSummary();
string directoryName = Path.GetFullPath("./Summary") + "/" + this.getDirectoryName(name);
if (!Directory.Exists(directoryName))
{
Directory.CreateDirectory(directoryName);
}
try
{
File.Copy(Path.GetFullPath(name), directoryName + "/" + name);
string a = directoryName + "/" + name;
}
catch
{
try
{
this.CopyDirectory_(Path.GetFullPath(name), directoryName );
}
catch { }
}
} //获得分类地址
private string getDirectoryName(string name)
{
string directionName = name;
if (Regex.IsMatch(name, patten2))
{
directionName = Regex.Match(name, patten2).Groups[1].Value;
}
string spit = Regex.Match(directionName, patten).Groups[1].Value.ToString();
if (!string.IsNullOrEmpty(spit))
{
directionName = Regex.Match(directionName, @"(.*)" + spit + "$").Groups[1].Value.ToString();
}
return directionName;
} //检测“summary”是否存在
private void checkSummary()
{
if (!Directory.Exists(Path.GetFullPath("./Summary")))
{
Directory.CreateDirectory(Path.GetFullPath("./Summary"));
}
} /// <summary>
/// 文件夹复制(网上来)
/// </summary>
/// <param name="srcdir">要复制的文件夹路径</param>
/// <param name="desdir">要复制到那里</param>
private void CopyDirectory_(string srcdir, string desdir)
{
string folderName = srcdir.Substring(srcdir.LastIndexOf("\\") + 1); string desfolderdir = desdir + "\\" + folderName; if (desdir.LastIndexOf("\\") == (desdir.Length - 1))
{
desfolderdir = desdir + folderName;
}
string[] filenames = Directory.GetFileSystemEntries(srcdir); foreach (string file in filenames)// 遍历所有的文件和目录
{
if (Directory.Exists(file))// 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
{ string currentdir = desfolderdir + "\\" + file.Substring(file.LastIndexOf("\\") + 1);
if (!Directory.Exists(currentdir))
{
Directory.CreateDirectory(currentdir);
} CopyDirectory_(file, desfolderdir);
} else // 否则直接copy文件
{
string srcfileName = file.Substring(file.LastIndexOf("\\") + 1); srcfileName = desfolderdir + "\\" + srcfileName;
if (!Directory.Exists(desfolderdir))
{
Directory.CreateDirectory(desfolderdir);
}
File.Copy(file, srcfileName);
}
}//foreach
}//function end //加入E……文件
public void CopyEFile(string path)
{ File.Copy(Path.GetFileName("EPCMSTTP.txt"), path + "/EPCMSTTP.txt");
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.IO;namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("start....");
string path=Path.GetFullPath("./");
DirectoryInfo dirinfo=new DirectoryInfo(path);
reg r = reg.getReg();
foreach (FileSystemInfo name in dirinfo.GetFileSystemInfos())
{
r.regName(name.Name);
}
DirectoryInfo summyinfo = new DirectoryInfo(Path.GetFullPath("summary/"));
foreach (FileSystemInfo p in summyinfo.GetFileSystemInfos())
{
r.CopyEFile(Path.GetFullPath("summary/"+p.Name));
}
Console.WriteLine("Done!!!!");
Console.WriteLine("Please tap random key to exit!!!");
Console.ReadKey();
}
} class reg
{
//private List<string> directory;
private static reg r;
private string patten = @"(\d*?)$";
private string patten2 = @"^([^.]*)\."; public static reg getReg()
{
if (r == null)
{
r = new reg();
}
return r;
} //主函数
public void regName(string name)
{
if (name == "EPCMSTTP.txt")
{
return;
}
this.checkSummary();
string directoryName = Path.GetFullPath("./Summary") + "/" + this.getDirectoryName(name);
if (!Directory.Exists(directoryName))
{
Directory.CreateDirectory(directoryName);
}
try
{
File.Copy(Path.GetFullPath(name), directoryName + "/" + name);
string a = directoryName + "/" + name;
}
catch
{
try
{
this.CopyDirectory_(Path.GetFullPath(name), directoryName );
}
catch { }
}
} //获得分类地址
private string getDirectoryName(string name)
{
string directionName = name;
if (Regex.IsMatch(name, patten2))
{
directionName = Regex.Match(name, patten2).Groups[1].Value;
}
string spit = Regex.Match(directionName, patten).Groups[1].Value.ToString();
if (!string.IsNullOrEmpty(spit))
{
directionName = Regex.Match(directionName, @"(.*)" + spit + "$").Groups[1].Value.ToString();
}
return directionName;
} //检测“summary”是否存在
private void checkSummary()
{
if (!Directory.Exists(Path.GetFullPath("./Summary")))
{
Directory.CreateDirectory(Path.GetFullPath("./Summary"));
}
} /// <summary>
/// 文件夹复制(网上来)
/// </summary>
/// <param name="srcdir">要复制的文件夹路径</param>
/// <param name="desdir">要复制到那里</param>
private void CopyDirectory_(string srcdir, string desdir)
{
string folderName = srcdir.Substring(srcdir.LastIndexOf("\\") + 1); string desfolderdir = desdir + "\\" + folderName; if (desdir.LastIndexOf("\\") == (desdir.Length - 1))
{
desfolderdir = desdir + folderName;
}
string[] filenames = Directory.GetFileSystemEntries(srcdir); foreach (string file in filenames)// 遍历所有的文件和目录
{
if (Directory.Exists(file))// 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
{ string currentdir = desfolderdir + "\\" + file.Substring(file.LastIndexOf("\\") + 1);
if (!Directory.Exists(currentdir))
{
Directory.CreateDirectory(currentdir);
} CopyDirectory_(file, desfolderdir);
} else // 否则直接copy文件
{
string srcfileName = file.Substring(file.LastIndexOf("\\") + 1); srcfileName = desfolderdir + "\\" + srcfileName;
if (!Directory.Exists(desfolderdir))
{
Directory.CreateDirectory(desfolderdir);
}
File.Copy(file, srcfileName);
}
}//foreach
}//function end //加入E……文件
public void CopyEFile(string path)
{ File.Copy(Path.GetFileName("EPCMSTTP.txt"), path + "/EPCMSTTP.txt");
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货