情况如下:
  我们网站有固定上传图片的文件夹Images,
  现在这个文件夹的图片太多了,想把没用的删除。
  数据库是ACCESS的,数据库里有一字段news是FCK内容的,所有的图片链接都能在这个字段遍历出来.
基本思路,先写个CS的代码吧数据库字段news的图片名遍历出来,然后对比Images文件夹的图片名,Images文件夹多出来的图片就可以用代码删除了。
不过不知道具体怎么实现!高手们给些建议或者参考代码,谢谢!

解决方案 »

  1.   

    应该先遍历Images文件夹的图片名,然后去数据库中对比,不存在则删除
      

  2.   

    通过正则获取图片名称。再遍历文件夹比较
    或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);

     
      

  3.   

    1、读取数据库字段,这个你应该会吧
    2、对比文件名是否相同,只能遍历文件夹去比较了:DirectoryInfo di = new DirectoryInfo(@"路径");
    int idx = 0;foreach (FileInfo fi in di.GetFiles())//可以用 di.GetFiles("*.jpg") 只对某个后缀名的图片进行处理
    {
      
    }
     阿捷 
      

  4.   

    通过正则表达式,获得News里面所有的图片。然后DirectoryInfo di = new DirectoryInfo(@"路径");
    int idx = 0;foreach (FileInfo fi in di.GetFiles())//可以用 di.GetFiles("*.jpg") 只对某个后缀名的图片进行处理
    {
      
    }
    进行比较