温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:风讯dotNETCMSv1.0免安装版源码
当前文件:
FooSunCMS/Foosun.CMS/Common/FileCompare.cs[3K,2009-6-12 11:42:42],打开代码结构图
FooSunCMS/Foosun.CMS/Common/FileCompare.cs[3K,2009-6-12 11:42:42],打开代码结构图1using System; 2
using System.Collections.Generic; 3
using System.Text; 4
using System.Text.RegularExpressions; 5
using System.IO; 6
using Foosun.Model; 7
8
namespace Foosun.CMS.Common 9
{ 10
public class FileCompare 11
{ 12
private string FileType = @".gif|.jpg|.swf|"; 13
private List<FileComprInfo> fllist; 14
private string RootDir; 15
private int dirlen; 16
private string Contrast = string.Empty; 17
public FileCompare(string root, string contrast) 18
{ 19
RootDir = root; 20
if (!Directory.Exists(RootDir)) 21
throw new Exception("文件目录不存在!"); 22
fllist = new List<FileComprInfo>(); 23
dirlen = root.Length; 24
Contrast = contrast; 25
GetStList(); 26
} 27
public void GetFileList() 28
{ 29
GetDirInfo(RootDir); 30
} 31
private void GetDirInfo(string ParentDir) 32
{ 33
DirectoryInfo[] ChildDirectory; //子目录集 34
FileInfo[] NewFileInfo; //当前所有文件 35
DirectoryInfo FatherDirectory = new DirectoryInfo(ParentDir); //当前目录 36
string dname = FatherDirectory.Name.ToLower(); 37
if (dname == "bin" || dname == Config.UIConfig.dirHtml.ToLower() || dname == Config.UIConfig.dirSite.ToLower()) 38
return; 39
NewFileInfo = FatherDirectory.GetFiles(); 40
foreach (FileInfo DirFile in NewFileInfo) //获取此级目录下的所有文件 41
{ 42
string exname = DirFile.Extension.ToLower() + "|"; 43
if (FileType.IndexOf(exname) >= 0) 44
continue; 45
string filenm = DirFile.FullName.Substring(dirlen); 46
long filesz = DirFile.Length; 47
DateTime filetm = DirFile.LastWriteTime; 48
bool flag = false; 49
foreach (FileComprInfo f in fllist) 50
{ 51
if (f.FileName.ToLower() == filenm.ToLower()) 52
{ 53
f.FaFileSize = filesz; 54
f.FaModifyTime = filetm; 55
flag = true; 56
break; 57
} 58
} 59
if (!flag) 60
{ 61
FileComprInfo fl = new FileComprInfo(filenm); 62
fl.FaFileSize = filesz; 63
fl.FaModifyTime = filetm; 64
fllist.Add(fl); 65
} 66
} 67
ChildDirectory = FatherDirectory.GetDirectories("*.*"); //得到子目录集 68
foreach (DirectoryInfo dirInfo in ChildDirectory) //获取此级目录下的一级目录 69
{ 70
GetDirInfo(dirInfo.FullName); 71
} 72
} 73
public List<FileComprInfo> FileList 74
{ 75
get { return fllist; } 76
} 77
private void GetStList() 78
{ 79
if (Contrast == null || Contrast == string.Empty) 80
return; 81
string pattern = "\\<file\\ name=\"(?<f>[^\"]+)\"\\ size=\"(?<s>\\d+)\"\\ modifytime=\"(?<t>[^\"]+)\"\\ */\\>(\r\n)*"; 82
Regex reg = new Regex(pattern, RegexOptions.Compiled | RegexOptions.IgnoreCase); 83
Match m = reg.Match(Contrast); 84
while (m.Success) 85
{ 86
try 87
{ 88
string filename = m.Groups["f"].Value.Trim(); 89
long l = long.Parse(m.Groups["s"].Value); 90
DateTime t = DateTime.Parse(m.Groups["t"].Value); 91
FileComprInfo fl = new FileComprInfo(filename); 92
fl.StFileSize = l; 93
fl.StModifyTime = t; 94
fllist.Add(fl); 95
} 96
catch 97
{ } 98
m = m.NextMatch(); 99
} 100
} 101
102
} 103
} 104






}
}