情况如下:
我们网站有固定上传图片的文件夹Images,
现在这个文件夹的图片太多了,想把没用的删除。
数据库是ACCESS的,数据库里有一字段news是FCK内容的,所有的图片链接都能在这个字段遍历出来.
基本思路,先写个CS的代码吧数据库字段news的图片名遍历出来,然后对比Images文件夹的图片名,Images文件夹多出来的图片就可以用代码删除了。
不过不知道具体怎么实现!高手们给些建议或者参考代码,谢谢!
我们网站有固定上传图片的文件夹Images,
现在这个文件夹的图片太多了,想把没用的删除。
数据库是ACCESS的,数据库里有一字段news是FCK内容的,所有的图片链接都能在这个字段遍历出来.
基本思路,先写个CS的代码吧数据库字段news的图片名遍历出来,然后对比Images文件夹的图片名,Images文件夹多出来的图片就可以用代码删除了。
不过不知道具体怎么实现!高手们给些建议或者参考代码,谢谢!
或List<File>实现查询
string fckStr = FCKeditor1.Value;
MatchCollection matchs = Regex.Matches(fckStr, @ " <img\s[^> ]*src=([ " " ']*)(? <src> [^ ' " "]*)\1[^> ]*> ", RegexOptions.IgnoreCase);
foreach (Match m in matchs) {
Response.Write(m.Groups[ "src "].Value+ " <br> ");
}
string[] files = Directory.GetDirectories("D:\\", "*.*", SearchOption.AllDirectories);
foreach(string f in files)
{
FileInfo fi = new FileInfo(f);
}
2、对比文件名是否相同,只能遍历文件夹去比较了:DirectoryInfo di = new DirectoryInfo(@"路径");
int idx = 0;foreach (FileInfo fi in di.GetFiles())//可以用 di.GetFiles("*.jpg") 只对某个后缀名的图片进行处理
{
}
int idx = 0;foreach (FileInfo fi in di.GetFiles())//可以用 di.GetFiles("*.jpg") 只对某个后缀名的图片进行处理
{
}
进行比较