项目中有个图片文件夹,比如说有1.jpg,2.jpg,3.jpg这三张照片,但是在数据库中保存图片的那个表中字段中只用到了1.jpg,2.jpg,这两张照片。现在是想通过一个按钮,btnClear,执行清理的方法,也就是点击按钮,能查询到3.jpg并没有被使用,在此处被视为是垃圾文件,然后将它删除,
C# code
    protected void btnClear_Click(object sender, EventArgs e)
    {
        //这里应该如何处理
    }
谢谢各位,帮忙看看...

解决方案 »

  1.   

    List<string> files = 数据库中记录的所有文件名;
    foreach(FileInfo fi in new DirectoryInfo(图片文件夹路径).GetFiles())
    {
    if(!files.Contains(fi.Name))
    {
    fi.Delete();
    }
    }
      

  2.   

     /// <summary>
            /// 通过安装路径获取该路径下所有文件
            /// </summary>
            /// <param name="path"></param>
            /// <returns></returns>
            public DataTable GetAllFiles(string path)
            {
                DirectoryInfo di = new DirectoryInfo(path);
                //获取该目录下的所有文件
                FileInfo[] fiArray = di.GetFiles();
                for (int i = 0; i < fiArray.Length; i++)
                {
                    string[] temp = { fiArray[i].DirectoryName, fiArray[i].Name, fiArray[i].Length.ToString(), fiArray[i].CreationTime.ToString() };
                    dt.Rows.Add(temp);
                }
                //获取该目录下的所有子目录
                DirectoryInfo[] diArray = di.GetDirectories();
                for (int j = 0; j < diArray.Length; j++)
                {
                    GetAllFiles(diArray[j].FullName);
                }
                return dt;
            }dt是一个DataTable,用来存放文件信息
      

  3.   

    获取文件夹里图片名 进行判断 不是1.jpg或2.jpg 就删除!